blob: 4b5a0b89396c0e28160e68d844c03f4b2eb945bd [file] [log] [blame]
2015-05-04 Dan Bernstein <mitz@apple.com>
WebKit always goes through LaunchServices for main frame navigation actions
https://bugs.webkit.org/show_bug.cgi?id=144608
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Defined
_WKNavigationActionPolicyAllowWithoutTryingAppLink.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): If the policy
is _WKNavigationActionPolicyAllowWithoutTryingAppLink, don’t go through tryAppLink.
2015-05-04 Enrica Casucci <enrica@apple.com>
[iOS WK2] editorState should include information about selection clipping rectangle.
https://bugs.webkit.org/show_bug.cgi?id=144603
rdar://problem/20521252
Reviewed by Chris Dumez.
Adding selectionClipRect to the post-layout portion of EditorState.
This way we can compute the selection clipping rectangle based on
up-to-date information instead of using the rectangle provided when
then element was first focused.
* Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):
* Shared/EditorState.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _selectionClipRect]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState):
2015-05-04 Antti Koivisto <antti@apple.com>
Network Cache: Support time based cache clearing
https://bugs.webkit.org/show_bug.cgi?id=144568
<rdar://problem/19769820>
Reviewed by Andreas Kling.
Support clearing cache entries newer than given time only.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::deleteDumpFile):
(WebKit::NetworkCache::Storage::traverse):
Also fix thread safety of traverse handler function.
(WebKit::NetworkCache::Cache::clear):
Also add completion handler to support the API properly.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::clear):
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::clearNSURLCache):
Factor to a function.
(WebKit::NetworkProcess::clearDiskCache):
2015-05-04 Zan Dobersek <zdobersek@igalia.com>
[WTF] Remove Functional.h inclusions
https://bugs.webkit.org/show_bug.cgi?id=144400
Reviewed by Darin Adler.
Remove unnecessary inclusions of the <wtf/Functional.h> header in WebKit2.
* Platform/IPC/unix/ConnectionUnix.cpp:
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Import the <objc/runtime.h>
header that was previously indirectly included through the Functional.h header.
* WebProcess/WebPage/DrawingArea.cpp:
2015-05-04 Csaba Osztrogonác <ossy@webkit.org>
[ARM] Don't compare unsigned chars to EOF (-1)
https://bugs.webkit.org/show_bug.cgi?id=144439
Reviewed by Geoffrey Garen.
* Shared/linux/WebMemorySamplerLinux.cpp:
(WebKit::nextToken): Don't cast return value of fgetc() to char.
2015-05-04 Antti Koivisto <antti@apple.com>
Remove NetworkResourceLoadScheduler
https://bugs.webkit.org/show_bug.cgi?id=144550
Reviewed by Sam Weinig.
It doesn't really do anything.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getNetworkProcessStatistics):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::networkResourceLoadScheduler): Deleted.
* NetworkProcess/NetworkResourceLoadScheduler.cpp: Removed.
* NetworkProcess/NetworkResourceLoadScheduler.h: Removed.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::cleanup):
* NetworkProcess/NetworkResourceLoader.h:
(WebKit::NetworkResourceLoader::create):
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::initializeNetworkSettings):
Moved from NetworkResourceLoadSchedulerMac.mm.
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm: Removed.
* NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2015-05-03 Alexey Proskuryakov <ap@apple.com>
Crash in SandboxExtension::consume when uploading iWork -tef documents to iCloud
https://bugs.webkit.org/show_bug.cgi?id=144509
rdar://problem/18731910
Reviewed by Daniel Bates.
No test, because testRunner.beginDragWithFiles doesn't work in WKTR, and making
it work is hard.
* Shared/BlobDataFileReferenceWithSandboxExtension.cpp:
(WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess):
(WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess):
2015-05-03 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][EFL] Unify platform display handling
https://bugs.webkit.org/show_bug.cgi?id=144517
Reviewed by Martin Robinson.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize): Use PlatformDisplay::sharedDisplay()
to checkt the display type.
(webkitWebViewBaseCreateWebPage): Ditto.
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::createBackend): Pass the native X11 shared
display to BackingStoreBackendCairoX11.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::x11HostDisplay): Return the native X11
shared display.
2015-05-03 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix Debug build with NETWORK_CACHE enabled and CACHE_PARTITIONING disabled.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):
2015-05-01 Dan Bernstein <mitz@apple.com>
WebKit2 part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
https://bugs.webkit.org/show_bug.cgi?id=144501
Reviewed by Darin Adler.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTMLString): If this is called during
didFailProvisionalLoadForFrame, send back the provisional URL captured at the time of
failure.
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame): Get the provisioinal URL and keep
it in new member variable m_failingProvisionalLoadURL for the duration of the client’s
handling of this message.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Added provisionalURL parameter to
DidFailProvisionalLoadForFrame.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): Send the URL for this error
to the UI process.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadAlternateHTMLString): Temporarily restore the loader’s state to
reflect the provisional load error being handled.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Added provisionalLoadErrorURL parameter to
LoadAlternateHTMLString.
2015-05-01 Martin Robinson <mrobinson@igalia.com>
USE(...) macro should expect unprefixed variables
https://bugs.webkit.org/show_bug.cgi?id=144454
Reviewed by Daniel Bates.
* Shared/API/c/WKBase.h: Replace all occurrences WTF_USE with USE.
* WebKit2.xcodeproj/project.pbxproj: Ditto.
2015-05-01 Brady Eidson <beidson@apple.com>
Add API to disable meta refreshes.
<rdar://problem/20333198> and https://bugs.webkit.org/show_bug.cgi?id=144269
Reviewed by Alexey Proskuryakov.
Add a preference to enable/disable meta refreshes, enabled by default.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetMetaRefreshEnabled):
(WKPreferencesGetMetaRefreshEnabled):
(WKPreferencesGetIgnoreViewportScalingConstraints): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2015-05-01 Antti Koivisto <antti@apple.com>
Remove network process load serialization code
https://bugs.webkit.org/show_bug.cgi?id=144448
Reviewed by Alexey Proskuryakov.
TestRunner.setSerializeHTTPLoads is used by a few tests but it is unnecessary
with network process. We don't reorder loads anyway so test results are consistent.
There or no other clients for this code.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::setSerialLoadingEnabled): Deleted.
* NetworkProcess/NetworkConnectionToWebProcess.h:
(WebKit::NetworkConnectionToWebProcess::isSerialLoadingEnabled): Deleted.
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getNetworkProcessStatistics):
* NetworkProcess/NetworkResourceLoadScheduler.cpp:
(WebKit::NetworkResourceLoadScheduler::scheduleLoader):
(WebKit::NetworkResourceLoadScheduler::removeLoader):
(WebKit::NetworkResourceLoadScheduler::loadsPendingCount): Deleted.
* NetworkProcess/NetworkResourceLoadScheduler.h:
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetTabKeyCyclesThroughElements):
(WKBundleSetSerialLoadingEnabled): Deleted.
(WKBundleDispatchPendingLoadRequests): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setSerialLoadingEnabled): Deleted.
(WebKit::InjectedBundle::dispatchPendingLoadRequests): Deleted.
Remove also this as it does nothing.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebKit::WebResourceLoadScheduler::suspendPendingRequests):
(WebKit::WebResourceLoadScheduler::resumePendingRequests):
Remove implementation, it does nothing.
(WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled):
* WebProcess/Network/WebResourceLoadScheduler.h:
2015-04-30 Timothy Horton <timothy_horton@apple.com>
Remove long-deprecated unused WKView minimumLayoutWidth properties
https://bugs.webkit.org/show_bug.cgi?id=144480
Reviewed by Alexey Proskuryakov.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView minimumLayoutWidth]): Deleted.
(-[WKView setMinimumLayoutWidth:]): Deleted.
(-[WKView minimumWidthForAutoLayout]): Deleted.
(-[WKView setMinimumWidthForAutoLayout:]): Deleted.
These were replaced with minimumSizeForAutoLayout long ago.
2015-04-30 Simon Fraser <simon.fraser@apple.com>
Fixed elements end up in the middle of the view with pageScale < 1
https://bugs.webkit.org/show_bug.cgi?id=144428
rdar://problem/20404982
Reviewed by Tim Horton.
Encode/decode fixedElementsLayoutRelativeToFrame.
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
2015-04-30 Tim Horton <timothy_horton@apple.com>
Asynchronous (or timed-out synchronous) resize flashes white instead of page background color
https://bugs.webkit.org/show_bug.cgi?id=144468
Reviewed by Simon Fraser and Dan Bernstein.
* UIProcess/API/mac/WKView.mm:
(-[WKView _viewBackgroundColor]):
(-[WKView updateLayer]):
Use the pageExtendedBackgroundColor for the background color of the WKView,
if we have one (and aren't using a transparent background). This means
during asynchronous resize or other cases where the Web process isn't keeping
up with the UI process during a resize, we'll see background color instead of white.
2015-04-30 Beth Dakin <bdakin@apple.com>
Should choose UIScrollView indicatorStyle based on the document background color
https://bugs.webkit.org/show_bug.cgi?id=144473
-and corresponding-
rdar://problem/19897699
Reviewed by Simon Fraser.
Update the indicator style whenever the background color changes.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateScrollViewBackground]):
2015-04-30 Enrica Casucci <enrica@apple.com>
[iOS] tapping in the middle of a word in editable content should not select the word.
https://bugs.webkit.org/show_bug.cgi?id=144421
rdar://problem/20710948
Reviewed by Tim Horton.
Reverting to the original behavior.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture):
2015-04-29 Hunseop Jeong <hs85.jeong@samsung.com>
Fix the EFL build after r183595
https://bugs.webkit.org/show_bug.cgi?id=144427
Reviewed by Gyuyoung Kim.
updateWheelEventTestTriggersIfNeeded() is guarded by #if ENABLE(CSS_SCROLL_SNAP) || ENABLE(RUBBER_BANDING).
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::updateWheelEventTestTriggersIfNeeded):
2015-04-29 Brent Fulgham <bfulgham@apple.com>
Expand test infrastructure to support scrolling tests
https://bugs.webkit.org/show_bug.cgi?id=143684
<rdar://problem/20375516>
Reviewed by Simon Fraser.
Update test programs to activate (and deactivate) the new WheelEventTestTrigger logic.
* UIProcess/API/C/WKPage.cpp:
(WKPageClearWheelEventTestTriggers): Added.
* UIProcess/API/C/WKPage.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::clearWheelEventTestTrigger): Added.
* UIProcess/WebPageProxy.h:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageStartMonitoringScrollOperations): Interact with WheelEventTestTrigger through
the Page, rather than MainFrame.
(WKBundlePageRegisterScrollOperationCompletionCallback): Ditto.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::createScrollbar): Make sure scroll animator knows about any
active test triggers.
* WebPage/EventDispatcher.mm:
(WebKit::EventDispatcher::wheelEvent): If the wheel event was passed to the scrolling thread,
defer tests until a Scrolling Thread Sync has occurred.
* WebPage/WebPage.cpp:
(WebKit::WebPage::clearWheelEventTestTrigger): Added.
* WebPage/WebPage.h:
* WebPage/WebPage.message.in: Added ClearWheelEventTestTrigger message.
2015-04-29 Enrica Casucci <enrica@apple.com>
Adding the ability to move selection by granularity on iOS.
https://bugs.webkit.org/show_bug.cgi?id=144410
rdar://problem/19213337
Reviewed by Benjamin Poulain.
This patch also correctly sets _usingGestureForSelection for all
the functions that change the selection with a gesture.
This way we make sure that the selection drawing is not delayed
until the next time we paint.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection):
2015-04-29 Tim Horton <timothy_horton@apple.com>
UI process sometimes crashes under _takeViewSnapshot when the window is off-screen
https://bugs.webkit.org/show_bug.cgi?id=144418
<rdar://problem/20740278>
Reviewed by Alexey Proskuryakov.
* UIProcess/API/mac/WKView.mm:
(-[WKView _takeViewSnapshot]):
Null-check the array before checking if it has any items.
If the window is off-screen, we can't snapshot it.
2015-04-29 Simon Fraser <simon.fraser@apple.com>
Allow testing of plug-ins that handle wheel events.
https://bugs.webkit.org/show_bug.cgi?id=144413
Reviewed by Tim Horton.
Allow the Test Netscape Plug-in to pretend to handle wheel events,
so layout tests can use it.
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::NetscapePluginModule::determineQuirks):
2015-04-29 Filip Pizlo <fpizlo@apple.com>
JSTypeInfo should have an inline type flag to indicate if getCallData() has been overridden
https://bugs.webkit.org/show_bug.cgi?id=144397
Reviewed by Andreas Kling.
If you override getCallData() and you want to be called a "function", then you need to use the
new TypeOfShouldCallGetCallData flag.
* WebProcess/Plugins/Netscape/JSNPObject.h:
2015-04-29 Antti Koivisto <antti@apple.com>
ResourceLoadPriority should be enum class
https://bugs.webkit.org/show_bug.cgi?id=144326
Reviewed by Darin Adler.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::servePendingRequests): Deleted.
Remove this unused message.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::retrieve):
* NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:
(WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::servePendingRequests):
* WebProcess/Network/WebResourceLoadScheduler.h:
2015-04-29 Myles C. Maxfield <mmaxfield@apple.com>
[OS X] Use CTFontCreateForCSS instead of doing font search ourselves
https://bugs.webkit.org/show_bug.cgi?id=132159
Reviewed by Darin Adler.
Add SPI to set the font whitelist.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextSetFontWhitelist):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setFontWhitelist):
* UIProcess/WebProcessPool.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2015-04-29 Martin Robinson <mrobinson@igalia.com>
[CMake] [GTK] Organize and clean up unused CMake variables
https://bugs.webkit.org/show_bug.cgi?id=144364
Reviewed by Gyuyoung Kim.
* PlatformGTK.cmake: Add variables specific to this project.
* webkit2gtk-web-extension.pc.in: Hardcode the GTK+ API version. It rarely changes.
* webkit2gtk.pc.in: Ditto.
2015-04-29 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r182573): [GTK] The default context menu contains an empty item since r182573
https://bugs.webkit.org/show_bug.cgi?id=144388
Reviewed by Brady Eidson.
Move the WebContextMenuClient::shareMenuItem() implementation to
platform files, since platforms not supporting share menu item
should return a null ContextMenuIem instead.
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::shareMenuItem): Deleted.
* WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp:
(WebKit::WebContextMenuClient::shareMenuItem):
* WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:
(WebKit::WebContextMenuClient::shareMenuItem):
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::shareMenuItem):
2015-04-29 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r183467): [SOUP] isMainResource is no longer passed as resource load parameters to the network process
https://bugs.webkit.org/show_bug.cgi?id=144381
Reviewed by Darin Adler.
A requester enum value is passed now as part of the
ResourceRequest, but it's not encoded/decoded for soup.
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData): Encode requester.
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): Decode requester.
2015-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Use xattrs to get/set the creation time of disk cache files
https://bugs.webkit.org/show_bug.cgi?id=144251
Reviewed by Martin Robinson.
The network process disk cache uses the creation time to compute a
worth value used to determine the order in which cached resources
are deleted when the cache is shrunk. In some operating systems
like Linux there's no st_birthtime in struct stat, but since cache
files are always created and deleted by us, we could use a custom
xattr to store and retrieve the creation time of cached resources.
* NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
(WebKit::NetworkCache::fileTimes):
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::IOChannel::IOChannel):
2015-04-28 Carlos Garcia Campos <cgarcia@igalia.com>
Network Cache: Do not create a SharedBuffer for mapped resources unless explicitly requested
https://bugs.webkit.org/show_bug.cgi?id=144337
Reviewed by Antti Koivisto.
We send a buffer or a memory mapped handler to the web process
depending on whether the resource body is mapped or not, but we
are always creating a shared buffer even for mapped resources.
Split initializeBufferFromStorageRecord() moving the mapped memory
handler initialization to its own method.
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
Initialize the mapped memory handler if the body data is mapped.
(WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
Initialize the buffer by wrapping the mapped memory if the body
data is mapped, or using the body data directly otherwise.
(WebKit::NetworkCache::Entry::shareableResourceHandle): Call
initializeShareableResourceHandleFromStorageRecord() if the
handler is null.
* NetworkProcess/cache/NetworkCacheEntry.h:
2015-04-28 Simon Fraser <simon.fraser@apple.com>
Make a non-static version of FrameView::yPositionForRootContentLayer()
https://bugs.webkit.org/show_bug.cgi?id=144375
Reviewed by Andy Estes.
There were two calls to the static FrameView::yPositionForRootContentLayer()
which passed in all the arguments for the same FrameView. Make a member
function for convenience.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::shadowLayerPositionForFrame):
2015-04-28 Ryuan Choi <ryuan.choi@navercorp.com>
[CoordinatedGraphics] Merge TILED_BACKING_STORE guard with COORDINATED_GRAPHICS
https://bugs.webkit.org/show_bug.cgi?id=143001
Reviewed by Gyuyoung Kim.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::dispatchViewportPropertiesDidChange):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize):
(WebKit::WebPage::setUseFixedLayout):
(WebKit::WebPage::canHandleUserEvents):
* WebProcess/WebPage/WebPage.h:
2015-04-28 Timothy Horton <timothy_horton@apple.com>
[TextIndicator] Yellow highlight takes too long to fade out on scroll
https://bugs.webkit.org/show_bug.cgi?id=144358
<rdar://problem/19451011>
Reviewed by Beth Dakin.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView renewGState]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _dictionaryLookupPopoverWillClose:]):
(-[WKView _setTextIndicator:]):
(-[WKView _setTextIndicator:withLifetime:]):
(-[WKView _clearTextIndicatorWithAnimation:]):
(-[WKView magnifyWithEvent:]):
(-[WKView smartMagnifyWithEvent:]):
(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
(-[WKView _dismissContentRelativeChildWindows]):
(-[WKView _dismissContentRelativeChildWindowsWithAnimation:]):
(-[WKView _setTextIndicator:fadeOut:]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::setTextIndicator):
(WebKit::WebPageProxy::clearTextIndicator):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):
(WebKit::PageClientImpl::didPerformDictionaryLookup):
(WebKit::PageClientImpl::dismissContentRelativeChildWindows):
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _animationControllerForText]):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
Make _setTextIndicator take a reference.
Add a variant of _setTextIndicator that takes a Lifetime.
Make _clearTextIndicatorWithAnimation take a DismissalAnimation.
Make dismissContentRelativeChildWindows take a parameter indicating
whether the dismissal should include animation or not (currently
only applies to TextIndicator).
Don't animate when dismissal occurs because of scrolling, zooming,
or other things in which the content will have changed significantly
underneath the indicator and shouldn't have a slowly-fading-out yellow highlight.
2015-04-28 Michael Catanzaro <mcatanzaro@igalia.com>
Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
https://bugs.webkit.org/show_bug.cgi?id=144304
Reviewed by Geoffrey Garen.
Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
* Configurations/FeatureDefines.xcconfig:
2015-04-28 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r183514.
https://bugs.webkit.org/show_bug.cgi?id=144359
It broke cloop test bots (Requested by mcatanzaro on #webkit).
Reverted changeset:
"Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT"
https://bugs.webkit.org/show_bug.cgi?id=144304
http://trac.webkit.org/changeset/183514
2015-04-28 Michael Catanzaro <mcatanzaro@igalia.com>
Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
https://bugs.webkit.org/show_bug.cgi?id=144304
Reviewed by Geoffrey Garen.
Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
* Configurations/FeatureDefines.xcconfig:
2015-04-28 Enrica Casucci <enrica@apple.com>
Add support for lookup on iOS.
https://bugs.webkit.org/show_bug.cgi?id=144342
rdar://problem/19994090
Reviewed by Tim Horton.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _lookup:]):
(-[WKContentView canPerformAction:withSender:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::getLookupContextAtPoint):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getLookupContextAtPoint):
2015-04-28 Brady Eidson <beidson@apple.com>
Consolidate most "frame load" arguments into FrameLoadRequest.
https://bugs.webkit.org/show_bug.cgi?id=144276
Reviewed by Alexey Proskuryakov.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::loadURL):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab):
2015-04-28 Chris Dumez <cdumez@apple.com>
[WK2][Mac] Update WebContent process' sandbox profile for AWD
https://bugs.webkit.org/show_bug.cgi?id=144315
<rdar://problem/20719293>
Reviewed by Alexey Proskuryakov.
Update sandbox profile for AWD similarly to what was done for iOS in
r182278.
* WebProcess/com.apple.WebProcess.sb.in:
2015-04-28 Antti Koivisto <antti@apple.com>
Network Cache: Disk cache getting filled by YouTube video data
https://bugs.webkit.org/show_bug.cgi?id=144259
Reviewed by Darin Adler.
MSE media is loaded via XHR and tends to eventually fill the cache.
YouTube serves the media chunks cacheable, however they are rarely (if ever) reused.
We can reduce disk writes and keep more useful resources around by not caching them
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeStoreDecision):
Don't store if the requester is XHR and response has video or audio content type.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::storeDecisionToDiagnosticKey):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
The requester type is now part of the ResourceRequest, no need for separate parameter.
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
2015-04-28 Zan Dobersek <zdobersek@igalia.com>
[WK2] API::UserContentURLPattern creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144225
Reviewed by Darin Adler.
Have API::UserContentURLPattern creation functions return Ref<>.
Call-sites are also updated, using and operating on the returned Ref<>
object where possible.
* Shared/API/APIUserContentURLPattern.h:
(API::UserContentURLPattern::create):
* Shared/API/c/WKUserContentURLPattern.cpp:
(WKUserContentURLPatternCreate):
2015-04-28 Zan Dobersek <zdobersek@igalia.com>
[WK2] API::URLRequest, API::URLResponse creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144224
Reviewed by Darin Adler.
Have API::URLRequest and API::URLResponse creation functions return Ref<>.
The call-sites are also updated, using and operating on the returned Ref<> object
where possible.
* Shared/API/APIURLRequest.h:
(API::URLRequest::create):
* Shared/API/APIURLResponse.h:
(API::URLResponse::create):
* Shared/API/c/WKURLRequest.cpp:
(WKURLRequestCreateWithWKURL):
* Shared/API/c/mac/WKURLRequestNS.mm:
(WKURLRequestCreateWithNSURLRequest):
* Shared/API/c/mac/WKURLResponseNS.mm:
(WKURLResponseCreateWithNSURLResponse):
* UIProcess/API/C/WKContext.cpp:
(WKContextSetDownloadClient):
* UIProcess/API/C/WKDownload.cpp:
(WKDownloadCopyRequest):
* UIProcess/API/C/WKNavigationDataRef.cpp:
(WKNavigationDataCopyOriginalRequest):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPagePolicyClient):
(WKPageSetPageUIClient):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp:
(WebKit::WebSoupCustomProtocolRequestManagerClient::startLoading):
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(willSendRequestForFrame):
* WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForNavigationAction):
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForNewWindowAction):
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForResponse):
2015-04-27 Zan Dobersek <zdobersek@igalia.com>
[WK2] API::Point, API::Size, API::Rect creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144223
Reviewed by Darin Adler.
Have API::Point, API::Size and API::Rect creation functions return Ref<>.
Call-sites are also updated, using and operating on the returned Ref<> object
where possible.
* Shared/API/APIGeometry.h:
(API::Size::create):
(API::Point::create):
(API::Rect::create):
* Shared/API/c/WKGeometry.cpp:
(WKPointCreate):
(WKSizeCreate):
(WKRectCreate):
2015-04-27 Zan Dobersek <zdobersek@igalia.com>
[WK2] API::Error creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144222
Reviewed by Darin Adler.
Have API::Error creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.
* Shared/API/APIError.h:
(API::Error::create):
* Shared/API/c/cf/WKErrorCF.cpp:
(WKErrorCreateWithCFError):
* UIProcess/API/C/WKOriginDataManager.cpp:
(WKOriginDataManagerDeleteEntriesForOrigin):
(WKOriginDataManagerDeleteEntriesModifiedBetweenDates):
(WKOriginDataManagerDeleteAllEntries):
* UIProcess/API/C/WKPage.cpp:
(toGenericCallbackFunction):
(WKPageForceRepaint):
(WKPageValidateCommand):
(WKPageComputePagesForPrinting):
* UIProcess/API/C/WKPluginSiteDataManager.cpp:
(WKPluginSiteDataManagerClearSiteData):
(WKPluginSiteDataManagerClearAllSiteData):
* UIProcess/GenericCallback.h:
(WebKit::toGenericCallbackFunction):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::printFinishedCallback):
2015-04-27 Sungmann Cho <sungmann.cho@navercorp.com>
[GTK] Remove unnecessary semicolon from WebKitNotificationProvider.h.
https://bugs.webkit.org/show_bug.cgi?id=144312
Reviewed by Martin Robinson.
No new tests, no behavior change.
* UIProcess/API/gtk/WebKitNotificationProvider.h:
2015-04-27 Brent Fulgham <bfulgham@apple.com>
PDF action menu fixes
https://bugs.webkit.org/show_bug.cgi?id=144299
<rdar://problem/20702215>
Reviewed by Tim Horton.
Make two corrections to how PDFs are handled:
1. When calculating the view rect for the user's selection, make sure
that we get coordinates for the correct PDF page. The existing code assumed
that the current PDFLayerControler's current page was correct, but this will
not be true if you zoom the PDF out so that several pages are displayed at
once. Each selection keeps track of the page it is referenced against.
2. Revise the offsets calculated for the TextIndicator to take into account
the font descender (as well as the ascender), and to adjust by the scaled
amount of margin around the selected text.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::viewRectForSelection): Use correct page for calculating
the coordinates.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForSelectionInPDFPlugin): Include font 'descendant'
and (scaled) margin when adjusting the hit target for the TextIndicator to draw.
2015-04-27 Michael Catanzaro <mcatanzaro@igalia.com>
Rename WTF_USE_3D_GRAPHICS to ENABLE_GRAPHICS_CONTEXT_3D
https://bugs.webkit.org/show_bug.cgi?id=144193
Reviewed by Darin Adler.
* CMakeLists.txt:
2015-04-24 Jon Honeycutt <jhoneycutt@apple.com>
Context menus are not reshown after an orientation change
<https://bugs.webkit.org/show_bug.cgi?id=144143>
<rdar://problem/20679931>
Reviewed by Darin Adler.
* UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet updateSheetPosition]):
Return early if we're still in a rotation, not if the rotation is
complete.
2015-04-27 Zan Dobersek <zdobersek@igalia.com>
[WK2] API::Dictionary creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144221
Reviewed by Darin Adler.
Have API::Dictionary creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.
* Shared/API/APIDictionary.cpp:
(API::Dictionary::create):
* Shared/API/APIDictionary.h:
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(createEncodedObject):
* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
* Shared/API/c/WKDictionary.cpp:
(WKDictionaryCreate):
* Shared/API/c/WKMutableDictionary.cpp:
(WKMutableDictionaryCreate):
* Shared/Plugins/Netscape/PluginInformation.cpp:
(WebKit::createPluginInformationDictionary):
* Shared/Plugins/Netscape/PluginInformation.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_prefetch_dns):
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_snapshot):
* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy):
* UIProcess/Plugins/PlugInAutoStartProvider.h:
* UIProcess/StatisticsRequest.cpp:
(WebKit::createDictionaryFromHashMap):
(WebKit::StatisticsRequest::completedRequest):
* UIProcess/WebFormClient.cpp:
(WebKit::WebFormClient::willSubmitForm):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFailToInitializePlugin):
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(didInitiateLoadForResource):
(willSendRequestForFrame):
(didReceiveResponseForResource):
(didReceiveContentLengthForResource):
(didFinishLoadForResource):
(didFailLoadForResource):
(webkitWebPageDidReceiveMessage):
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::willSendSubmitEvent):
(WebKit::InjectedBundlePageFormClient::willSubmitForm):
2015-04-27 Zan Dobersek <zdobersek@igalia.com>
[WK2] API::Data creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144220
Reviewed by Darin Adler.
Have API::Data creation functions return Ref<>.
The call-sites are also updated, using and operating
on the returned Ref<> object where possible.
* Shared/API/APIData.h:
(API::Data::createWithoutCopying):
(API::Data::create):
* Shared/API/c/WKData.cpp:
(WKDataCreate):
* Shared/API/c/mac/WKWebArchive.cpp:
(WKWebArchiveCopyData):
* Shared/API/c/mac/WKWebArchiveResource.cpp:
(WKWebArchiveResourceCopyData):
* Shared/APIWebArchive.h:
* Shared/APIWebArchive.mm:
(API::WebArchive::data):
* Shared/APIWebArchiveResource.h:
* Shared/APIWebArchiveResource.mm:
(API::WebArchiveResource::data):
* Shared/Cocoa/APIDataCocoa.mm:
(API::Data::createWithoutCopying):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
* UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
(webkitURISchemeRequestReadCallback):
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_load_bytes):
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::createData):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dataCallback):
(WebKit::WebPageProxy::savePDFToFileInDownloadsFolder):
2015-04-27 Zan Dobersek <zdobersek@igalia.com>
[WK2] API::URL creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144219
Reviewed by Darin Adler.
Have API::URL creation functions return Ref<>.
The call-sites are also updated, using and operating in the
returned Ref<> object, where possible.
* Shared/API/APIURL.h:
(API::URL::create):
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toCopiedURLAPI):
* Shared/API/c/WKURL.cpp:
(WKURLCreateWithUTF8CString):
(WKURLCreateWithBaseURL):
* UIProcess/API/gtk/WebKitWebResource.cpp:
(webkit_web_resource_get_data):
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::didChangeIconForPageURL):
(WebKit::WebIconDatabase::notifyIconDataReadyForPageURL):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::userAgent):
2015-04-27 Zan Dobersek <zdobersek@igalia.com>
[WK2] API::String creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144218
Reviewed by Darin Adler.
Have API::String creation functions return Ref<>.
The call-sites are also updated, using and operating on the returned
Ref<> object, where possible.
* Shared/API/APIString.h:
* Shared/API/c/WKPluginInformation.cpp:
(WKPluginInformationBundleIdentifierKey):
(WKPluginInformationBundleVersionKey):
(WKPluginInformationBundleShortVersionKey):
(WKPluginInformationPathKey):
(WKPluginInformationDisplayNameKey):
(WKPluginInformationDefaultLoadPolicyKey):
(WKPluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey):
(WKPluginInformationHasSandboxProfileKey):
(WKPluginInformationFrameURLKey):
(WKPluginInformationMIMETypeKey):
(WKPluginInformationPageURLKey):
(WKPluginInformationPluginspageAttributeURLKey):
(WKPluginInformationPluginURLKey):
(WKPlugInInformationReplacementObscuredKey):
* Shared/API/c/WKSharedAPICast.h:
(WebKit::ProxyingRefPtr::ProxyingRefPtr):
(WebKit::toCopiedAPI):
* Shared/API/c/WKString.cpp:
(WKStringCreateWithUTF8CString):
(WKStringCreateWithJSString):
* UIProcess/API/C/WKDatabaseManager.cpp:
(WKDatabaseManagerGetOriginKey):
(WKDatabaseManagerGetOriginQuotaKey):
(WKDatabaseManagerGetOriginUsageKey):
(WKDatabaseManagerGetDatabaseDetailsKey):
(WKDatabaseManagerGetDatabaseDetailsNameKey):
(WKDatabaseManagerGetDatabaseDetailsDisplayNameKey):
(WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCreationTimeKey):
(WKDatabaseManagerGetDatabaseDetailsModificationTimeKey):
* UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetOriginKey):
(WKKeyValueStorageManagerGetCreationTimeKey):
(WKKeyValueStorageManagerGetModificationTimeKey):
* UIProcess/API/C/WKPage.cpp:
(WKPageGetSessionHistoryURLValueType):
(WKPageGetSessionBackForwardListItemValueType):
(toGenericCallbackFunction):
(WKPageValidateCommand):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::didReceiveInvalidMessage):
2015-04-27 Brady Eidson <beidson@apple.com>
Make 'enum NavigationType' be an enum class
https://bugs.webkit.org/show_bug.cgi?id=144270
Reviewed by Alex Christensen.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
* Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::NavigationActionData):
* UIProcess/API/Cocoa/WKNavigationAction.mm:
(toWKNavigationType):
* UIProcess/API/gtk/WebKitPrivate.cpp:
(toWebKitNavigationType):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab):
2015-04-27 Brent Fulgham <bfulgham@apple.com>
REGRESSION(r182879): Images and video can no longer be downloaded
https://bugs.webkit.org/show_bug.cgi?id=144267
<rdar://problem/20702844>
Reviewed by Simon Fraser.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]): Check for
"!WebCore::protocolIs(..., "file")" for image and media downloads.
2015-04-27 Csaba Osztrogonác <ossy@webkit.org>
[EFL] TestWebKitAPI's forwarding header generator should depend on WebKit2's generator
https://bugs.webkit.org/show_bug.cgi?id=143874
Reviewed by Gyuyoung Kim.
* PlatformEfl.cmake: Rename the generator to have consistent name with other generators.
* Scripts/generate-forwarding-headers.pl: Removed the unnecessary multiple include-path support.
2015-04-17 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Add initial implementation of NetworkProcess disk cache
https://bugs.webkit.org/show_bug.cgi?id=143872
Reviewed by Martin Robinson.
Implement the platform specific parts of the disk cache
implementation for Soup. It's mainly NetworkCache::Data and
NetworkCache::IOChannel.
* CMakeLists.txt:
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::dumpFileChanged):
(WebKit::NetworkCache::Cache::initialize):
* NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
* NetworkProcess/cache/NetworkCacheData.h:
(WebKit::NetworkCache::Data::soupBuffer):
* NetworkProcess/cache/NetworkCacheDataSoup.cpp: Added.
(WebKit::NetworkCache::Data::Data):
(WebKit::NetworkCache::Data::empty):
(WebKit::NetworkCache::Data::data):
(WebKit::NetworkCache::Data::isNull):
(WebKit::NetworkCache::Data::apply):
(WebKit::NetworkCache::Data::subrange):
(WebKit::NetworkCache::concatenate):
(WebKit::NetworkCache::MapWrapper::~MapWrapper):
(WebKit::NetworkCache::deleteMapWrapper):
(WebKit::NetworkCache::mapFile):
(WebKit::NetworkCache::Data::adoptMap):
(WebKit::NetworkCache::computeSHA1):
(WebKit::NetworkCache::bytesEqual):
* NetworkProcess/cache/NetworkCacheIOChannel.h:
* NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: Added.
(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::open):
(WebKit::NetworkCache::fillDataFromReadBuffer):
(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
(WebKit::NetworkCache::IOChannel::write):
* NetworkProcess/cache/NetworkCacheStorageSoup.cpp: Removed.
* NetworkProcess/gtk/NetworkProcessMainGtk.cpp:
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::NetworkProcess::platformSetCacheModel):
(WebKit::NetworkProcess::clearDiskCache):
* PlatformGTK.cmake:
2015-04-26 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] Implement ES6 template literals
https://bugs.webkit.org/show_bug.cgi?id=142691
Reviewed by Darin Adler.
Add ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag.
* Configurations/FeatureDefines.xcconfig:
2015-04-26 Sungmann Cho <sungmann.cho@navercorp.com>
Remove PluginView::renderer().
https://bugs.webkit.org/show_bug.cgi?id=144216
Reviewed by Darin Adler.
Nobody should have to know about the plug-in view's renderer except the plug-in view itself.
No new tests, no behavior change.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::convertFromScrollbarToContainingView):
(WebKit::PDFPlugin::convertFromContainingViewToScrollbar):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::renderer): Deleted.
* WebProcess/Plugins/PluginView.h:
2015-04-26 Doug Russell <d_russell@apple.com>
AX: richer text change notifications (142719)
https://bugs.webkit.org/show_bug.cgi?id=142719
Reviewed by Darin Adler.
Richer accessibility value change notifications. Introduce AXTextEditType,
postTextStateChangeNotification and postTextReplacementNotification to give assistive
tech apps more reliable context for responding to changes in web content. Also implement
a mechanism to post value changes in password form fields in coalesced ticks to thwart
analyzing the cadence of changes.
Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent,
and an overload of postTextReplacementNotification to give assistive tech apps more
reliable context for responding to changes in web content selection. Also block posting
selection changes on password fields.
* UIProcess/WebEditCommandProxy.cpp:
(WebKit::WebEditCommandProxy::nameForEditAction):
2015-04-26 Dan Bernstein <mitz@apple.com>
<rdar://problem/20702337> REGRESSION (r182952): Plug-in service fails to load because it links against WebKit2.framework
https://bugs.webkit.org/show_bug.cgi?id=144233
Reviewed by Simon Fraser.
Have the plug-in service link against WebKit.framework rather than WebKit2.framework.
* Configurations/PluginService.32.xcconfig: Removed linker flags for linking against WebKit2
and Foundation from the definition of OTHER_LDFLAGS. Since linking is no longer conditional,
we can just do it in the target’s Link Binary With Libraries build phase.
* Configurations/PluginService.64.xcconfig: Ditto.
* WebKit2.xcodeproj/project.pbxproj: Have Foundation and WebKit listed in the services’ Link
Binariy With Libraries build phases (one service already had WebKit).
2015-04-26 Dan Bernstein <mitz@apple.com>
Fixed the build.
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _showDocumentPickerMenu]): Suppressed deprecation warnings around use
of -[UIDocumentMenuViewController _setIgnoreApplicationEntitlementForImport:].
2015-04-25 Tim Horton <timothy_horton@apple.com>
Further update gesture swipe shadow style
https://bugs.webkit.org/show_bug.cgi?id=144215
<rdar://problem/19295843>
Reviewed by Dan Bernstein.
* Resources/mac/SwipeShadow.png: Removed.
* Resources/mac/SwipeShadow@2x.png: Removed.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
* WebKit2.xcodeproj/project.pbxproj:
Use a CAGradientLayer instead of PNGs for the swipe shadow.
2015-04-25 Dan Bernstein <mitz@apple.com>
WebKit2 part of <rdar://problem/20697966> Avoid using TBD as an argument to NS_AVAILABLE
https://bugs.webkit.org/show_bug.cgi?id=144201
Reviewed by Darin Adler.
Instead of TBD, we use the high version number to which it corresponds in CFAvailability.h,
9876.5.
* mac/MigrateHeadersFromWebKitLegacy.make: To detect not-yet-available declarations in
headers, look for "9876_5" rather than "TBA".
2015-04-24 Timothy Hatcher <timothy@apple.com>
Web Inspector: Remove native window dock controls
https://bugs.webkit.org/show_bug.cgi?id=144184
Reviewed by Joseph Pecoraro.
* Resources/DockBottom.pdf: Removed.
* Resources/DockBottomLegacy.pdf: Removed.
* Resources/DockRight.pdf: Removed.
* Resources/DockRightLegacy.pdf: Removed.
* UIProcess/WebInspectorProxy.h:
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):
* WebKit2.xcodeproj/project.pbxproj:
2015-04-25 Martin Robinson <mrobinson@igalia.com>
Rename ENABLE_3D_RENDERING to ENABLE_3D_TRANSFORMS
https://bugs.webkit.org/show_bug.cgi?id=144182
Reviewed by Simon Fraser.
* Configurations/FeatureDefines.xcconfig: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
2015-04-24 Simon Fraser <simon.fraser@apple.com>
Have the web inspector report accurate memory use for layers with detached backing store
https://bugs.webkit.org/show_bug.cgi?id=144179
Reviewed by Dean Jackson.
Remote layers can make their backing store volatile, so the backing only contributes
to reported memory use when attached.
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2015-04-24 Andreas Kling <akling@apple.com>
theverge.com burning 100% CPU on iPad (due to window.screenX/Y)
<https://webkit.org/b/144175>
<rdar://problem/20694585>
Reviewed by Anders Carlsson.
Return an empty window rect on iOS WK2 builds. This avoids sending a synchronous
IPC request to the UI process that would give the same result, but spend way
more time and CPU cycles to do so.
With this change, theverge.com CPU usage goes from 100% to ~20% when idle.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::windowRect):
2015-04-24 Brent Fulgham <bfulgham@apple.com>
TextIndicator for embedded PDFs is slightly offset
https://bugs.webkit.org/show_bug.cgi?id=144172
<rdar://problem/20691304>
Reviewed by Tim Horton.
When I converted the existing DOM Range logic to work with PDFSelections, I omitted the
step where the font ascent was used to adjust the origin used for the TextIndicator. This
patch determines the correct ascent for the range of characters in the selection, and
adjusts the offset by the difference between the ascent and the height of the selection rect.
Also, since the PDFSelection only supplies the bounding rect for the selection, I calculate
an equivalent text bounding box by insetting the rect by half the size of the ascent.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::scaleFactor): Add accessor for PDF scale factor.
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForPDFSelectionInPluginView): Adjusted to take the
font ascent and scale factor into account.
2015-04-24 David Kilzer <ddkilzer@apple.com>
REGRESSION (r183293): Fix iOS EWS build by adding SPI declaration for +[UIPeripheralHost visiblePeripheralFrame]
Fixes the following build failures:
WebKit2/UIProcess/ios/WKPDFView.mm:740:45: error: class method '+visiblePeripheralFrame' not found (return type defaults to 'id') [-Werror,-Wobjc-method-access]
CGRect keyboardRect = [UIPeripheralHost visiblePeripheralFrame];
^~~~~~~~~~~~~~~~~~~~~~
WebKit2/UIProcess/ios/WKPDFView.mm:740:12: error: no viable conversion from 'id' to 'CGRect'
CGRect keyboardRect = [UIPeripheralHost visiblePeripheralFrame];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Platform/spi/ios/UIKitSPI.h:
(+[UIPeripheralHost visiblePeripheralFrame]): Add declaration.
2015-04-24 Anders Carlsson <andersca@apple.com>
Change _WKWebsiteDataStore to hold on to an internal WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=144171
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _websiteDataStore]):
(-[WKWebViewConfiguration _setWebsiteDataStore:]):
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(-[_WKWebsiteDataStore initWithDataStore:]):
(+[_WKWebsiteDataStore defaultDataStore]):
(+[_WKWebsiteDataStore nonPersistentDataStore]):
(-[_WKWebsiteDataStore isNonPersistent]):
(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
* UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.h.
* WebKit2.xcodeproj/project.pbxproj:
2015-04-24 Tim Horton <timothy_horton@apple.com>
WKPDFView does not support password-protected PDFs
https://bugs.webkit.org/show_bug.cgi?id=144162
<rdar://problem/18411512>
Reviewed by Andy Estes.
* Platform/spi/ios/UIKitSPI.h:
Add some SPI.
* UIProcess/ios/WKPDFView.h:
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _didLoadPDFDocument]):
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):
Move creation of the UIPDFDocument (only possible if the CGPDFDocument is unlocked)
and initial setup of the page views out into _didLoadPDFDocument.
If the CGPDFDocument is locked, we'll show some UI to unlock it; otherwise
we'll continue on to _didLoadPDFDocument as previously.
(-[WKPDFView web_setMinimumSize:]):
Resize the password UI instead of the PDF pages if we have it.
(-[WKPDFView _computePageAndDocumentFrames]):
Don't bother doing any work revalidating PDF pages if the document is locked.
(-[WKPDFView _updatePasswordEntryField]):
Make sure that the UIDocumentPassword view is always the size of the scrollview.
This takes care of rotation.
(-[WKPDFView _keyboardDidShow:]):
Make sure that we scroll the password field around, if necessary, to keep it
on screen when editing begins.
(-[WKPDFView _showPasswordEntryField]):
(-[WKPDFView _hidePasswordEntryField]):
Adjust the background color (to match the UIDocumentPasswordView) and disable zooming
while it's up. The UIDocumentPassword view is installed into the scroll view
to match UIWebView behavior.
(-[WKPDFView userDidEnterPassword:forPasswordView:]):
(-[WKPDFView didBeginEditingPassword:inView:]):
(-[WKPDFView didEndEditingPassword:inView:]):
(-[WKPDFView _didFailToUnlock]):
Pop up a dialog informing the user that they entered the wrong password.
(-[WKPDFView _tryToUnlockWithPassword:]):
Try to unlock the document. If it succeeds, hide the unlock UI and go back to
_didLoadPDFDocument.
2015-04-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r183266.
https://bugs.webkit.org/show_bug.cgi?id=144164
Broke 32-bit build and a test. (Requested by ap on #webkit).
Reverted changeset:
"AX: richer text change notifications (142719)"
https://bugs.webkit.org/show_bug.cgi?id=142719
http://trac.webkit.org/changeset/183266
2015-04-24 Brent Fulgham <bfulgham@apple.com>
REGRESSION: WebKit2.ActionMenusTest API test fails
https://bugs.webkit.org/show_bug.cgi?id=144149
<rdar://problem/20677770>
Reviewed by Tim Horton.
Tested by TestWebKitAPI
The 'lookupTextAtLocation' method was not converting the NSEvent coordinates it
was receiving from root view to the plugin view. Consequently, full page PDFs
did hit testing correctly, but an <embed> PDF would not.
Since 'existingSelectionContainsPoint' is exposed as API, I also modified it to
expect 'root view' coordinates and perform the requisite conversions, rather
than expecting 'plugin view' coordinates.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::existingSelectionContainsPoint): Expect 'root view' coordinates
for the input.
(WebKit::PDFPlugin::lookupTextAtLocation): Properly convert the passed 'root view'
coordinates to the PDF's view coordinate space.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation): Pass hit point using view coordinates,
not content coordinates.
2015-04-24 Anders Carlsson <andersca@apple.com>
Address a review comment from Joe Pecoraro.
* UIProcess/API/Cocoa/WKWebsiteDataStore.h:
2015-04-24 Anders Carlsson <andersca@apple.com>
Rename -[WKWebsiteDataStore isNonPersistent] to -[WKWebsiteDataStore isPersistent]
https://bugs.webkit.org/show_bug.cgi?id=144158
Reviewed by Beth Dakin.
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::isPersistent):
(API::WebsiteDataStore::isNonPersistent): Deleted.
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore isPersistent]):
(-[WKWebsiteDataStore isNonPersistent]): Deleted.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(-[_WKWebsiteDataStore isNonPersistent]):
* UIProcess/WebsiteData/WebsiteDataStore.h:
2015-04-24 Brent Fulgham <bfulgham@apple.com>
Immediate action not functional for embedded PDFs
https://bugs.webkit.org/show_bug.cgi?id=143952
<rdar://problem/19842365>
Reviewed by Tim Horton.
Add a new method to retrieve appropriate dictionary lookup content and update the
hit test result with relevant dictionary content and the bounding rect of the
selection.
* WebProcess/Plugins/Netscape/NetscapePlugin.h: Add stub.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp: Initialize plugin type.
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::rectInWindowSpaceForRectInLayoutSpace): New helper function to
convert PDF 'in page' units to the equivalent view units.
(WebKit::PDFPlugin::PDFPlugin): Initialize plugin type.
(WebKit::PDFPlugin::viewRectForSelection): Query a provided PDFSelection for
its bounding rect and return the result in view units.
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginProxy.cpp: Initialize plugin type.
* WebProcess/Plugins/PluginProxy.h: Add stub.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::viewRectForSelection): Added.
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForPDFSelectionInPluginView): Added.
(WebKit::textIndicatorTransitionForActionMenu): Added helper function.
(WebKit::WebPage::performActionMenuHitTestAtLocation): Update the hit test information
with relevant dictionary lookup content, and mark the result as a text node (if
appropriate).
2015-04-24 Jer Noble <jer.noble@apple.com>
[WK2] Only issue a isPlayingAudioDidChange() notification if the audio playing state actually changed.
https://bugs.webkit.org/show_bug.cgi?id=144153
Reviewed by Alexey Proskuryakov.
Check the old state vs. the new state and only issue the change notification if the IsPlayingAudio state changed.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingMediaDidChange):
2015-04-24 Antti Koivisto <antti@apple.com>
CrashTracer: [USER] com.apple.WebKit.Networking at com.apple.WebKit: WebKit::NetworkResourceLoader::~NetworkResourceLoader + 14
https://bugs.webkit.org/show_bug.cgi?id=144147
Reviewed by Chris Dumez.
Storage::storeBodyAsBlob copies the std::function callback for handling mapped bodies in a thread.
This is thread safe only if the function copy is thread safe. It is currently not as we are capturing
RefPtr<NetworkResourceLoader> and NetworkResourceLoader doesn't use thread safe refcounting.
Fix by avoiding copying of the callback. Use same apporach for WriteOperation as we already use for
ReadOperation: count the active operations in progress and delete WriteOperation when everything is
finished. This way we don't need to copy the function out from WriteOperation.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation):
(WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):
Move definition here from the header.
(WebKit::NetworkCache::Storage::~Storage):
(WebKit::NetworkCache::Storage::storeBodyAsBlob):
Increment the operation count when storing a blob, call finishWriteOperation when done.
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::finishReadOperation):
Count active operations instead of finished operations. This makes the code clearer.
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::finishWriteOperation):
Mirror the way ReadOperations work.
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation): Deleted.
2015-04-24 Timothy Hatcher <timothy@apple.com>
REGRESSION: Web Inspector: Start Timeline Recording in Develop menu broken
https://bugs.webkit.org/show_bug.cgi?id=144150
Reviewed by Brian Burg.
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::evaluateCommandOnLoad): Properly treat bools as literals
instead of strings by not using the string version of evaluateCommandOnLoad.
2015-04-23 Anders Carlsson <andersca@apple.com>
Add headerdocs for WKWebsiteDataRecord and WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=144138
Reviewed by Darin Adler.
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
2015-04-24 Doug Russell <d_russell@apple.com>
AX: richer text change notifications (142719)
https://bugs.webkit.org/show_bug.cgi?id=142719
Reviewed by Darin Adler.
Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes.
Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields.
* UIProcess/WebEditCommandProxy.cpp:
(WebKit::WebEditCommandProxy::nameForEditAction):
2015-04-24 Darin Adler <darin@apple.com>
Convert OwnPtr and PassOwnPtr uses to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128007
Reviewed by Anders Carlsson.
* NetworkProcess/cache/NetworkCacheEncoder.h: Added an include now
needed that was inherited from OwnPtr.h before.
2015-04-24 Antti Koivisto <antti@apple.com>
Network Cache: Make path functions members
https://bugs.webkit.org/show_bug.cgi?id=144146
Reviewed by Carlos Garcia Campos.
This simplifies the code.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::partitionPathForKey):
(WebKit::NetworkCache::Storage::recordPathForKey):
(WebKit::NetworkCache::Storage::bodyPathForKey):
(WebKit::NetworkCache::Storage::storeBodyAsBlob):
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::finishReadOperation):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::partitionPathForKey): Deleted.
(WebKit::NetworkCache::recordPathForKey): Deleted.
(WebKit::NetworkCache::bodyPathForKey): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
2015-04-24 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Remove incorrect assert after r183189.
In this case the assert was already there, but it's incorrect
because we are handling uninitialized attachments below in the
same function, and also when sending messages. So, if it's ok to
send uninitialized attachments, it's ok to receive them. This
didn't fail before r183189, because we were only invaliding the
attachments by setting the file descriptor to -1, and they were
handled as null attachments. After r183189, the move operator
resets the moved attachment leaving it uninitialized again.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage):
2015-04-24 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Use a webkit subdirectory for the disk cache
https://bugs.webkit.org/show_bug.cgi?id=144048
Reviewed by Martin Robinson.
Recent versions of libsoup remove any file in cache dir not
referenced by the index when the cache is loaded to workaround
leaked resources when load/dump is unbalanced for whatever reason,
like a crash. We currently use $XDG_CACHE_HOME/app-name as default
disk cache directory, but that directory could be used by apps to
cache other things, and the soup cache might end up deleting other
stuff. The soup cache assumes the given directory is only for the
disk cache, so we should ensure that.
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess): Append
webkit to the given disk cache and clear the previous soup cache if it exists.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess): Ditto.
2015-04-24 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Remove incorrect ASSERT added in r183176.
We allow to encode null attachments.
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::releaseAttachment):
2015-04-23 Dan Bernstein <mitz@apple.com>
<rdar://problem/20680694> Framework header postprocessing isn’t removing WK_DEPRECATED macros when it should.
Reviewed by Andy Estes.
* mac/postprocess-framework-headers.sh:
2015-04-23 Simon Fraser <simon.fraser@apple.com>
Make it possible to detach GraphicsLayerCA backing store
https://bugs.webkit.org/show_bug.cgi?id=144140
Reviewed by Tim Horton.
This changes makes it possible to denote a GraphicsLayerCA's backing store
as "attached" or not. When not attached, the backing store is made volatile
and can be purged. This will be used in a future patch.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore): Whitespace.
(WebKit::RemoteLayerBackingStore::display): If backingStoreWillBeDisplayed()
returns true, this indicates that the backing store was brought out of the
"unreachable" list, so return true even if the backing store doesn't require
painting.
* Shared/mac/RemoteLayerBackingStoreCollection.h: C++11 initializer, and comments.
* Shared/mac/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayed): Return true
if the caller will need to submit the backing store in the current transaction.
(WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable): This
explicit dirtying is no longer necessary given the backingStoreWillBeDisplayed() change.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::applyPropertiesToLayer): Only set the layer's backing if we both have backing
store, and it's attached.
* Shared/mac/RemoteLayerTreeTransaction.h: New bit, and data member.
* 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::recursiveBuildTransaction): Only call display()
on the backing store if it's attached.
(WebKit::PlatformCALayerRemote::setBackingStoreAttached):
(WebKit::PlatformCALayerRemote::backingStoreAttached):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::backingStoreWillBeDisplayed):
2015-04-23 Tim Horton <timothy_horton@apple.com>
Quick Look preview popover is not dismissed on scroll in Mail
https://bugs.webkit.org/show_bug.cgi?id=144119
<rdar://problem/19752045>
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView renewGState]):
If we have a TextIndicator, dismiss all content relative child windows
on renewGState, not just the TextIndicator itself.
This will fix cases like Mail, where WebKit isn't driving the scrolling,
and we have no way (except renewGState) to know that scrolling is happening.
2015-04-23 Simon Fraser <simon.fraser@apple.com>
Changing TiledBacking velocity should schedule a tile revalidation
https://bugs.webkit.org/show_bug.cgi?id=144123
Reviewed by Tim Horton.
Drive-by fix: use the FrameView& that we have already.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
2015-04-23 Jer Noble <jer.noble@apple.com>
[Mac] Disable QTKit by default on future OS X.
https://bugs.webkit.org/show_bug.cgi?id=144082
Reviewed by Darin Adler.
QTKitEnabled defaults to false.
* Shared/WebPreferencesDefinitions.h:
2015-04-23 Jer Noble <jer.noble@apple.com>
[WK2][Mac] Tweak the timing curve of the WebKit Fullscreen animation
https://bugs.webkit.org/show_bug.cgi?id=144120
Reviewed by Eric Carlson.
Tweak the curve to ease-in faster when the fullscreen animation duration is short.
* UIProcess/mac/WKFullScreenWindowController.mm:
(timingFunctionForDuration):
(zoomAnimation):
(maskAnimation):
(fadeAnimation):
2015-04-23 Enrica Casucci <enrica@apple.com>
iOS build fix after r183208.
Unreviewed.
* UIProcess/ios/WKContentViewInteraction.mm:
2015-04-22 Alexey Proskuryakov <ap@apple.com>
[iOS] WebKit services should inherit environment variables for home
https://bugs.webkit.org/show_bug.cgi?id=144078
rdar://problem/20571678
Reviewed by Dan Bernstein.
Pass current environment variables as XPC bootstrap. Also while at it, made
_CFBundleSetupXPCBootstrap not soft linked.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
(main):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
2015-04-23 Enrica Casucci <enrica@apple.com>
Support share button.
https://bugs.webkit.org/show_bug.cgi?id=144077
rdar://problem/19772892
Reviewed by Darin Adler.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _share:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _define:]):
(-[WKContentView accessibilityRetrieveSpeakSelectionContent]):
(-[WKContentView moveByOffset:]):
(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
(-[WKContentView accessoryTab:]):
(-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKContentView executeEditCommandWithCallback:]):
2015-04-23 Carlos Garcia Campos <cgarcia@igalia.com>
[UNIX] Do not allow copies of IPC::Attachment
https://bugs.webkit.org/show_bug.cgi?id=144096
Reviewed by Darin Adler.
It ensures that the file descriptor ownership is always correctly
transferred. This way we can remove the dispose() method to
explicitly close the file descriptor and always close it in the
Attachment destructor (unless explicitly transferred to
IPC::Connection or SharedMemory). It simplifies the code and
ensure we don't leak file descriptors.
* Platform/IPC/ArgumentDecoder.cpp:
(IPC::ArgumentDecoder::~ArgumentDecoder): Remove the code to
explicitly dispose attachments.
(IPC::ArgumentDecoder::removeAttachment): Use WTF::move().
* Platform/IPC/ArgumentEncoder.cpp:
(IPC::ArgumentEncoder::~ArgumentEncoder): Remove the code to
explicitly dispose attachments.
(IPC::ArgumentEncoder::addAttachment): Use WTF::move().
(IPC::ArgumentEncoder::releaseAttachments): Simplify by using WTF::move().
* Platform/IPC/ArgumentEncoder.h:
* Platform/IPC/Attachment.cpp:
(IPC::Attachment::encode): Move a copy of the attachment, and
reset the file descriptor, since the ownership is passed to the encoder.
* Platform/IPC/Attachment.h: Make copy constructor and assignment
private to not allow public copies. The only copy allowed is done
by Attachment::encode(). Make m_fileDescriptor mutable so that we
can reset it in Attachment::encode() after passing the ownership
to the encoder.
* Platform/IPC/unix/AttachmentUnix.cpp:
(IPC::Attachment::~Attachment): Close the file descriptor if it
hasn't been released explicitly.
(IPC::Attachment::dispose): Deleted.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage): Do not use AttachmentResourceGuard.
(IPC::Connection::sendOutgoingMessage): Ditto.
(IPC::AttachmentResourceGuard::AttachmentResourceGuard): Deleted.
(IPC::AttachmentResourceGuard::~AttachmentResourceGuard): Deleted.
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::~Handle): Do not call clear().
(WebKit::SharedMemory::Handle::clear): Reset the attachment.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::createInspectorPage): Use WTF::move().
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
Call releaseFileDescriptor() instead of fileDescritpro() since the
ownership is passed to the connection.
2015-04-23 Alexey Proskuryakov <ap@apple.com>
Build fix.
* WebProcess/cocoa/WebProcessCocoa.mm: Correct the case of an include file name.
2015-04-23 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix debug build after r183176.
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::decode):
(WebKit::SharedMemory::createHandle):
2015-04-23 Andreas Kling <akling@apple.com>
There should only be one way to get the system memory size.
<https://webkit.org/b/144081>
Reviewed by Antti Koivisto.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformSetCacheModel):
(WebKit::memorySize): Deleted.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel):
(WebKit::memorySize): Deleted.
2015-04-23 Chris Dumez <cdumez@apple.com>
[WK2] WebDiagnosticLoggingClient is leaking
https://bugs.webkit.org/show_bug.cgi?id=144089
<rdar://problem/19706214>
Reviewed by Darin Adler.
WebDiagnosticLoggingClient is leaking. It is constructed inside WebPage
constructor but there is no code destroying it.
This patch adds a new xxxDestroyed() virtual function to
DiagnosticLoggingClient and that is overriden in
WebDiagnosticLoggingClient to call "delete this". This is the same
pattern as for other WK2 clients (e.g. WebFrameLoaderClient,
WebProgressTrackerClient).
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::mainFrameDestroyed):
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
2015-04-23 Carlos Garcia Campos <cgarcia@igalia.com>
[UNIX] Simplify the file descriptor handling in SharedMemory
https://bugs.webkit.org/show_bug.cgi?id=144046
Reviewed by Darin Adler.
Simplify the file descriptor handling and clarify its ownership by
using IPC::Attachment in SharedMemory::Handle instead of fd and
size members. SharedMemory::Handle::adoptFromAttachment() has been
renamed as SharedMemory::Handle::adoptAttachment() and receives an
IPC::Attachment. And SharedMemory::Handle::releaseToAttachment()
has been renamed as SharedMemory::Handle::releaseAttachment().
* Platform/IPC/Attachment.h: Add move constructor and move assigned operator.
* Platform/IPC/Connection.h:
(IPC::Connection::identifierIsNull): A file descriptor is null
when it's -1 no 0.
* Platform/IPC/unix/AttachmentUnix.cpp:
(IPC::Attachment::Attachment):
(IPC::Attachment::operator=):
(IPC::Attachment::dispose): Reset the file descriptor after
closing it.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage): Use
SharedMemory::Handle::adoptAttachment() that receives an
IPC::Attachment now.
(IPC::Connection::sendOutgoingMessage): Use
SharedMemory::Handle::releaseAttachment().
* Platform/SharedMemory.h:
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::Handle): Remove initializers for
file descriptor and size members.
(WebKit::SharedMemory::Handle::clear): Dispose the attachment.
(WebKit::SharedMemory::Handle::isNull): Handle is null if the
attachment file descriptor is -1.
(WebKit::SharedMemory::Handle::encode): Use releaseAttachment().
(WebKit::SharedMemory::Handle::decode): Use adoptAttachment().
(WebKit::SharedMemory::Handle::releaseAttachment): Implement it
using move.
(WebKit::SharedMemory::Handle::adoptAttachment): Ditto.
(WebKit::SharedMemory::map): Use
IPC::Attachment::releaseFileDescriptor() instead of manually
changing the member.
(WebKit::SharedMemory::createHandle): Initialize the handle
attachment with the duplicated file descriptor and size.
2015-04-22 Darin Adler <darin@apple.com>
Remove OwnPtr and PassOwnPtr use from WebKit/cf, WebKit/mac, and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=143943
Reviewed by Anders Carlsson.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
Removed unneeded include.
2015-04-22 Brent Fulgham <bfulgham@apple.com>
VisibleSelection should only accept Range by reference
https://bugs.webkit.org/show_bug.cgi?id=144047
Reviewed by Tim Horton.
Update all uses of VisibleSelection to pass a Range reference instead
of a Range pointer.
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::renderedImage):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::getImageForFindMatch):
(WebKit::FindController::selectFindMatch):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::setCompositionAsync):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::insertDictatedTextAsync):
2015-04-22 Anders Carlsson <andersca@apple.com>
Add WK_ARRAY and WK_SET annotations
https://bugs.webkit.org/show_bug.cgi?id=144075
rdar://problem/19417770
Reviewed by Dan Bernstein.
* Shared/API/Cocoa/WKFoundation.h:
* UIProcess/API/Cocoa/WKBackForwardList.h:
* UIProcess/API/Cocoa/WKUserContentController.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.h:
* mac/postprocess-framework-headers.sh:
2015-04-22 Brent Fulgham <bfulgham@apple.com>
Unreviewed build fix after r183136.
* WebProcess/WebPage/mac/WebPageMac.mm: Correct capitalization of
'HTMLPluginImageElement.h' -> 'HTMLPlugInImageElement.h'
2015-04-21 Brent Fulgham <bfulgham@apple.com>
Extend action menus to support PDF
https://bugs.webkit.org/show_bug.cgi?id=143895
<rdar://problem/19003333>
Reviewed by Tim Horton.
If the mouse pointer is over a PDF, try to provide a relevant action menu for whatever
content is under the mouse. For now, we only support copying text and handling URLs.
If no text is selected, use the dictionary lookup service to find a semantically appropriate
selection underneath the mouse. This is consistent with how normal text is treated in pure HTML
views. If some text is already selected, and the mouse is over the existing selection, continue
using the selected text. Otherwise, discard the old selection and select the most appropriate
region under the mouse pointer.
* Shared/API/c/WKActionMenuTypes.h: Add PDF menu option.
* Shared/WebMouseEvent.cpp: Recognize mouse force events as valid mouse events.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForPDF]): Add simply copy text option.
(-[WKActionMenuController _defaultMenuItems]): Recognize PDFs and add relevant action
menu entries.
* WebProcess/Plugins/Netscape/NetscapePlugin.h: Provide stub for new method.
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Expose 'rectsForSelectionInLayerSpace',
'rectsForAnnotationInLayoutSpace', 'layout', and 'currentPage'.
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::getSelectionForWordAtPoint): Added.
(WebKit::PDFPlugin::existingSelectionContainsPoint): Added.
(WebKit::PDFPlugin::lookupTextAtLocation): Added.
* WebProcess/Plugins/Plugin.h: Add declaration for new 'getSelectionForWordAtPoint' method.
* WebProcess/Plugins/PluginProxy.h: Provide stub for new method.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::getSelectionForWordAtPoint): Added.
(WebKit::PluginView::existingSelectionContainsPoint): Added.
(WebKit::PluginView::lookupTextAtLocation): Added.
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation): Update to support PDF documents and retrieve
relevant content to support later action menu handling.
2015-04-22 Eric Carlson <eric.carlson@apple.com>
Update AirPlay sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=144062
<rdar://problem/19869448>
Reviewed by Alexey Proskuryakov.
* WebProcess/com.apple.WebProcess.sb.in: Remove obsolete rules.
2015-04-22 Alexey Proskuryakov <ap@apple.com>
[Mac] In nightlies and local builds, WebKit services can get terminated under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=144052
rdar://problem/19754404
Reviewed by Darin Adler.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
(main): Make XPC transaction tracking work again after a re-exec.
2015-04-22 Zan Dobersek <zdobersek@igalia.com>
[WK2] Have API::Array creation methods return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=143933
Reviewed by Darin Adler.
API::Array::create() and API::Array::createStringArray() should return Ref<> objects
as the return values are never null. It's up to the caller to implicitly convert the
returned objects to RefPtr<> if so required. All the call-sites have been updated to
reflect that.
* Shared/API/APIArray.cpp:
(API::Array::create):
(API::Array::createStringArray):
(API::Array::copy):
* Shared/API/APIArray.h:
* Shared/API/APIDictionary.cpp:
(API::Dictionary::keys):
* Shared/API/APIDictionary.h:
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(ensureObjectStream):
* Shared/API/c/WKArray.cpp:
(WKArrayCreate):
(WKArrayCreateAdoptingValues):
* Shared/API/c/WKContextMenuItem.cpp:
(WKContextMenuCopySubmenuItems):
* Shared/API/c/WKDictionary.cpp:
(WKDictionaryCopyKeys):
* Shared/API/c/WKMutableArray.cpp:
(WKMutableArrayCreate):
* Shared/Cocoa/WKNSDictionary.mm:
(-[WKNSDictionary keyEnumerator]):
* Shared/SecurityOriginData.cpp:
(WebKit::performAPICallbackWithSecurityOriginDataVector):
* Shared/WebContextMenuItem.cpp:
(WebKit::WebContextMenuItem::submenuItemsAsAPIArray):
* Shared/WebContextMenuItem.h:
* Shared/WebOpenPanelParameters.cpp:
(WebKit::WebOpenPanelParameters::acceptMIMETypes):
(WebKit::WebOpenPanelParameters::selectedFileNames):
* Shared/WebOpenPanelParameters.h:
* UIProcess/API/C/WKBackForwardListRef.cpp:
(WKBackForwardListCopyBackListWithLimit):
(WKBackForwardListCopyForwardListWithLimit):
* UIProcess/API/C/WKGrammarDetail.cpp:
(WKGrammarDetailCopyGuesses):
* UIProcess/API/C/WKOpenPanelParameters.cpp:
(WKOpenPanelParametersCopyAcceptedMIMETypes):
(WKOpenPanelParametersCopySelectedFileNames):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageContextMenuClient):
(WKPageCopyRelatedPages):
* UIProcess/API/Cocoa/WKBackForwardList.mm:
(-[WKBackForwardList backList]):
(-[WKBackForwardList forwardList]):
* UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:
(createWKArray):
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
* UIProcess/API/gtk/WebKitBackForwardList.cpp:
(webkit_back_forward_list_get_back_list_with_limit):
(webkit_back_forward_list_get_forward_list_with_limit):
* UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
(webkit_file_chooser_request_get_mime_types):
(webkit_file_chooser_request_get_mime_types_filter):
(webkit_file_chooser_request_select_files):
* UIProcess/API/gtk/WebKitNotificationProvider.cpp:
(WebKitNotificationProvider::notificationCloseCallback):
* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::populateCopyOfNotificationPermissions):
* UIProcess/Notifications/WebNotificationProvider.cpp:
(WebKit::WebNotificationProvider::clearNotifications):
* UIProcess/Plugins/WebPluginSiteDataManager.cpp:
(WebKit::WebPluginSiteDataManager::didGetSitesWithData):
* UIProcess/StatisticsRequest.cpp:
(WebKit::StatisticsRequest::completedRequest):
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backList):
(WebKit::WebBackForwardList::forwardList):
(WebKit::WebBackForwardList::backListAsAPIArrayWithLimit):
(WebKit::WebBackForwardList::forwardListAsAPIArrayWithLimit):
* UIProcess/WebBackForwardList.h:
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
(WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
* UIProcess/WebGrammarDetail.cpp:
(WebKit::WebGrammarDetail::guesses):
* UIProcess/WebGrammarDetail.h:
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
* UIProcess/WebMediaCacheManagerProxy.cpp:
(WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache):
* UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::WebOriginDataManagerProxy::didGetOrigins):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFindStringMatches):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins):
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]):
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame childFrames]):
* WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp:
(WKBundleBackForwardListItemCopyChildren):
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
(WKBundleFrameCopyChildFrames):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCopyTrackedRepaintRects):
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
(WebKit::InjectedBundleBackForwardListItem::children):
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h:
* WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
(WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems):
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::didAssociateFormControls):
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::findLargestFrameInFrameSet):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::childFrames):
* WebProcess/WebPage/WebFrame.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::trackedRepaintRects):
* WebProcess/WebPage/WebPage.h:
2015-04-21 Eric Carlson <eric.carlson@apple.com>
[Mac] Use one playback target for all web processes
https://bugs.webkit.org/show_bug.cgi?id=144009
Reviewed by Tim Horton.
Every WebPageProxy uses the WebMediaSessionManager singleton to talk to the playback target
picker.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::isPlayingMediaDidChange):
(WebKit::WebPageProxy::addPlaybackTargetPickerClient):
(WebKit::WebPageProxy::removePlaybackTargetPickerClient):
(WebKit::WebPageProxy::showPlaybackTargetPicker):
(WebKit::WebPageProxy::playbackTargetPickerClientStateDidChange):
(WebKit::WebPageProxy::setPlaybackTarget):
(WebKit::WebPageProxy::externalOutputDeviceAvailableDidChange):
(WebKit::WebPageProxy::setShouldPlayToPlaybackTarget):
(WebKit::WebPageProxy::devicePickerProxy): Deleted.
(WebKit::WebPageProxy::startingMonitoringPlaybackTargets): Deleted.
(WebKit::WebPageProxy::stopMonitoringPlaybackTargets): Deleted.
(WebKit::WebPageProxy::didChoosePlaybackTarget): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isPlayingAudio):
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::mediaSessionManager):
(WebKit::PageClientImpl::createPlaybackTargetPicker): Deleted.
* UIProcess/mac/WebMediaSessionManagerMac.cpp: Added.
(WebKit::WebMediaSessionManagerMac::singleton):
(WebKit::WebMediaSessionManagerMac::WebMediaSessionManagerMac):
(WebKit::WebMediaSessionManagerMac::~WebMediaSessionManagerMac):
(WebKit::WebMediaSessionManagerMac::targetPicker):
* UIProcess/mac/WebMediaSessionManagerMac.h: Added.
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::isPlayingMediaDidChange):
(WebKit::WebChromeClient::addPlaybackTargetPickerClient):
(WebKit::WebChromeClient::removePlaybackTargetPickerClient):
(WebKit::WebChromeClient::showPlaybackTargetPicker):
(WebKit::WebChromeClient::playbackTargetPickerClientStateDidChange):
(WebKit::WebChromeClient::startingMonitoringPlaybackTargets): Deleted.
(WebKit::WebChromeClient::stopMonitoringPlaybackTargets): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::playbackTargetSelected):
(WebKit::WebPage::playbackTargetAvailabilityDidChange):
(WebKit::WebPage::setShouldPlayToPlaybackTarget):
2015-04-21 Anders Carlsson <andersca@apple.com>
WKWebsiteDataStore doesn't track and remove IndexedDB databases
https://bugs.webkit.org/show_bug.cgi?id=144032
rdar://problem/20242856
Reviewed by Tim Horton.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:
* Shared/WebsiteData/WebsiteDataTypes.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
(dataTypesToString):
* UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::generateCallbackID):
(WebKit::DatabaseProcessProxy::~DatabaseProcessProxy):
(WebKit::DatabaseProcessProxy::fetchWebsiteData):
(WebKit::DatabaseProcessProxy::deleteWebsiteData):
(WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::DatabaseProcessProxy::didClose):
(WebKit::DatabaseProcessProxy::didFetchWebsiteData):
(WebKit::DatabaseProcessProxy::didDeleteWebsiteData):
(WebKit::DatabaseProcessProxy::didDeleteWebsiteDataForOrigins):
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.messages.in:
* UIProcess/WebProcessPool.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
2015-04-21 Anders Carlsson <andersca@apple.com>
Add module maps for WebKit
https://bugs.webkit.org/show_bug.cgi?id=144026
rdar://problem/19665428
Reviewed by Dan Bernstein.
* Configurations/WebKit.xcconfig:
* Modules/OSX.modulemap: Added.
* Modules/iOS.modulemap: Added.
2015-04-21 Tim Horton <timothy_horton@apple.com>
Long pause under _takeViewSnapshot when screen updates are disabled
https://bugs.webkit.org/show_bug.cgi?id=144017
<rdar://problem/20548397>
Reviewed by Simon Fraser.
* UIProcess/API/mac/WKView.mm:
(-[WKView _takeViewSnapshot]):
Use CGSHWCaptureWindowList, for snapshotting that doesn't block on
the next commit, and can succeed while screen updates are disabled
without blocking.
2015-04-21 Chris Dumez <cdumez@apple.com>
[WK2][NetworkCache] Better account of resource revalidations in efficacy logging
https://bugs.webkit.org/show_bug.cgi?id=144014
Reviewed by Antti Koivisto.
Better account of resource revalidations in efficacy logging.
Prevously, resources that were in the cache but needed revalidation
were counted as retrieval successes, which is not entirely accurate.
We now distinguish "is in the cache and is directly usable" from
"is in the cache but needs revalidation". We also log how many of these
revalidations are successful.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::update):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry):
(WebKit::NetworkCache::Statistics::recordRevalidationSuccess):
* NetworkProcess/cache/NetworkCacheStatistics.h:
2015-04-21 Dan Bernstein <mitz@apple.com>
[Cocoa] Framework header postprocessing should respect additional definitions
https://bugs.webkit.org/show_bug.cgi?id=144018
Reviewed by Anders Carlsson.
* mac/postprocess-framework-headers.sh: Read definitons from
/usr/local/include/WebKitAdditions/Scripts/postprocess-framework-headers-definitions, and
have them take precedence over OSX_VERSION and IOS_VERSION and supply additional options to
sed.
2015-04-21 Anders Carlsson <andersca@apple.com>
Fix block signatures
https://bugs.webkit.org/show_bug.cgi?id=144002
Reviewed by Andreas Kling.
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _highlightLinkAnnotation:forDuration:completionHandler:]):
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _processMediaInfoDictionaries:successBlock:failureBlock:]):
(-[WKFileUploadPanel _processMediaInfoDictionaries:atIndex:processedResults:processedImageCount:processedVideoCount:successBlock:failureBlock:]):
(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):
2015-04-21 Timothy Horton <timothy_horton@apple.com>
PDFs still don't snapshot properly in iOS Safari
https://bugs.webkit.org/show_bug.cgi?id=143976
<rdar://problem/18283459>
Reviewed by Anders Carlsson.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didLayoutForCustomContentProvider):
* UIProcess/WebPageProxy.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]):
Inform the client that we've passed all reasonable layout milestones
as soon as the custom content provider has been handed its data.
WKPDFView, the only custom content provider, synchronously lays out
its subviews upon initial receipt of data, so this works fine for it.
This ensures that clients that normally depend on layout milestones firing
won't break when a custom content view is installed.
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
Fall back to renderInContext: if the custom content view is not parented
when a snapshot is requested.
2015-04-21 Dan Bernstein <mitz@apple.com>
Merged WKBackForwardListItem’s Internal category into the class extension in WKBackForwardListItemInternal.h.
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKBackForwardListItem.mm:
(-[WKBackForwardListItem _item]):
(-[WKBackForwardListItem _apiObject]):
* UIProcess/API/Cocoa/WKBackForwardListItemInternal.h:
2015-04-21 Chris Dumez <cdumez@apple.com>
Make Vector(const Vector<T, otherCapacity, otherOverflowBehaviour>&) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=143970
Reviewed by Darin Adler.
Make Vector(const Vector<T, otherCapacity, otherOverflowBehaviour>&)
constructor explicit as it copies the vector and it is easy to call it
by mistake.
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::setIndexKeys):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
2015-04-20 Dan Bernstein <mitz@apple.com>
Expose more bundle form client functions as WKWebProcessPlugInFormDelegatePrivate methods
https://bugs.webkit.org/show_bug.cgi?id=143973
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared new
delegate methods.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: Declared new frame
property.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(-[WKWebProcessPlugInNodeHandle frame]): Added. Returns the node’s document’s frame. This is
useful to delegates getting an array of nodes via the new method.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added overrides of
shouldNotifyOnFormChanges and didAssociateFormControls, which call the new delegate methods.
2015-04-20 Joseph Pecoraro <pecoraro@apple.com>
Cleanup some StringBuilder use
https://bugs.webkit.org/show_bug.cgi?id=143550
Reviewed by Darin Adler.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::buildObjectStoreStatement):
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::v2RecordsTableSchema):
* Shared/Databases/IndexedDB/IDBUtilities.cpp:
(WebKit::uniqueDatabaseIdentifier):
* UIProcess/API/APIUserScript.cpp:
(API::UserScript::generateUniqueURL):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::didReceiveInvalidMessage):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::combinedSecurityOriginIdentifier):
2015-04-20 Anders Carlsson <andersca@apple.com>
Modify the WKWebsiteDataStore API to take a NSSet of types instead of a bitmask
https://bugs.webkit.org/show_bug.cgi?id=143966
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
(dataTypesToString):
(-[WKWebsiteDataRecord dataTypes]):
* UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):
* UIProcess/API/Cocoa/WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore allWebsiteDataTypes]):
(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWKWebsiteDataTypes):
(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
2015-04-20 Beth Dakin <bdakin@apple.com>
Should remove mouseForceClick and mouseForceCancelled from DOM force events
https://bugs.webkit.org/show_bug.cgi?id=143904
-and corresponding-
rdar://problem/20578842
Reviewed by Dan Bernstein.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::immediateActionDidCancel):
2015-04-20 Tim Horton <timothy_horton@apple.com>
Implement immediate action support for tel: and mailto: URLs
https://bugs.webkit.org/show_bug.cgi?id=143916
<rdar://problem/19721711>
Reviewed by Darin Adler.
* Shared/API/c/WKImmediateActionTypes.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _menuItemForDataDetectedText]): Deleted.
Add _animationControllerForDataDetectedLink and use it when
building immediate actions for tel: and mailto: links.
2015-04-20 Alex Christensen <achristensen@webkit.org>
Properly report errors from _WKUserContentExtensionStore.
https://bugs.webkit.org/show_bug.cgi?id=143808
Reviewed by Darin Adler.
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
2015-04-18 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r181656): Animated tiled layers are missing content
https://bugs.webkit.org/show_bug.cgi?id=143911
rdar://problem/20596328
Reviewed by Darin Adler.
After r181656, all requestAnimationFrame was falling back to timers, and not
using the platform's DisplayRefreshMonitor, because of a Nullopt vs nullptr
fumble.
Replace this confusing Optional<> code with simpler code that just forces the
clients to make a DisplayRefreshMonitor if they can, first asking
ChromeClient, and then falling back to createDefaultDisplayRefreshMonitor().
Make lots of things into references, and use C++11 initialization in some places.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createDisplayRefreshMonitor):
* WebProcess/WebCoreSupport/WebChromeClient.h:
2015-04-18 Dan Bernstein <mitz@apple.com>
SwipeShadow images are installed on iOS
https://bugs.webkit.org/show_bug.cgi?id=143915
Reviewed by Tim Horton.
* Configurations/WebKit.xcconfig: Added Resources/Mac/* to
EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*]. We could move more resources there and remove
individual patterns.
* Resources/SwipeShadow.png: Moved to mac.
* Resources/SwipeShadow@2x.png: Moved to mac.
* Resources/mac: Added.
* Resources/mac/SwipeShadow.png: Moved from Source/WebKit2/Resources/SwipeShadow.png.
* Resources/mac/SwipeShadow@2x.png: Moved from Source/WebKit2/Resources/SwipeShadow@2x.png.
* WebKit2.xcodeproj/project.pbxproj: Created mac group in the Resources group and moved
SwipeShadow*.png into it. Updated for file moves.
2015-04-18 Chris Dumez <cdumez@apple.com>
Fix NetworkCache Statistics database bootstrapping after r182803
https://bugs.webkit.org/show_bug.cgi?id=143890
Reviewed by Darin Adler.
Update the NetworkCache Statistics database bootstrapping code to use
the records path instead of the version path. Also check that the
filenames in the folder are valid hashes to discard the *-body files.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::recordsPath):
(WebKit::NetworkCache::Cache::storagePath): Deleted.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache):
(WebKit::NetworkCache::Statistics::shrinkIfNeeded):
2015-04-17 Tim Horton <timothy_horton@apple.com>
Clients sometimes block for 500ms in waitForPossibleGeometryUpdates
https://bugs.webkit.org/show_bug.cgi?id=143901
<rdar://problem/20488655>
Reviewed by Anders Carlsson.
* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForMessage):
InterruptWaitingIfSyncMessageArrives already cancels waitForMessage if
a sync message arrives while waiting, but it should also avoid waiting
if there's a sync message already in the queue when the waiting starts,
as that will have the same nasty effect.
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
If a synchronous message comes in from the Web process while we're waiting,
cancel our synchronous wait for DidUpdateGeometry. This will cause the size
change to not synchronize with the Web process' painting, but that is better
than pointlessly blocking for 500ms.
2015-04-17 Chris Dumez <cdumez@apple.com>
Possible null pointer dereference in WebDiagnosticLoggingClient::logDiagnosticMessageWithValue()
https://bugs.webkit.org/show_bug.cgi?id=143899
<rdar://problem/20584215>
Reviewed by Anders Carlsson.
WebDiagnosticLoggingClient::logDiagnosticMessage*() methods failed to
check that m_page.corePage() was non-null before dereferencing, thus
causing crashes when it is null.
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
2015-04-17 Yongjun Zhang <yongjun_zhang@apple.com>
WebKit client should be able to add view controller for link preview.
https://bugs.webkit.org/show_bug.cgi?id=143686
Add delegate methods to WKUIDelegatePrivate so that a WebKit client can prepare a view controller
for link preview and react to the dismissal of this view controller. Also connect WKContentView to
preview gesture recognizer and forwards the delegate callbacks to corresponding delegate methods
in WKUIDelegatePrivate.
Reviewed by Beth Dakin.
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView willMoveToWindow:]):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanupInteraction]):
(-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView previewViewControllerForPosition:inSourceView:]):
(-[WKContentView commitPreviewViewController:]):
(-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]):
(-[WKContentView didDismissPreviewViewController:committing:]):
2015-04-17 Beth Dakin <bdakin@apple.com>
Force mouse events should go through normal mouse event handling code paths
https://bugs.webkit.org/show_bug.cgi?id=143749
-and corresponding-
rdar://problem/20472895
Reviewed by Dean Jackson.
This patch makes pressureChangeWithEvent create NativeWebMouseEvents with the
NSEventTypePressures that is gets and sends those down to the web process.
Re-name pressureEvent to lastPressureEvent. Now that event can sometimes be an
NSEventTypePressure, the new name makes it clear how the second parameter differs
from the first.
* Shared/NativeWebMouseEvent.h:
New event types for the new types of events.
* Shared/WebEvent.h:
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
* Shared/mac/NativeWebMouseEventMac.mm:
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
* Shared/mac/WebEventFactory.h:
All of the square-peg, round-hole problems of massaging the NSEventTypePressures
events into WebMouseEvents is taken care of here.
* Shared/mac/WebEventFactory.mm:
(WebKit::mouseButtonForEvent):
(WebKit::globalPointForEvent):
(WebKit::pointForEvent):
(WebKit::WebEventFactory::createWebMouseEvent):
Instead of calling the old inputDeviceForceDidChange, create a NativeWebMouseEvent
and handle it.
* UIProcess/API/mac/WKView.mm:
(-[WKView pressureChangeWithEvent:]):
Handle the new types.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent):
Can delete inputDeviceForceDidChange since it’s no longer used.
(WebKit::WebPageProxy::inputDeviceForceDidChange): Deleted.
* UIProcess/WebPageProxy.h:
Handle the new types of mouse events properly.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::handleMouseEvent):
Delete inputDeviceForceDidChange() and m_lastForceStage.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::inputDeviceForceDidChange): Deleted.
Handle new WebEvent types.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
2015-04-17 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r182912 and r182920.
https://bugs.webkit.org/show_bug.cgi?id=143881
Build breakage in some configurations (Requested by ap on
#webkit).
Reverted changesets:
"Force mouse events should go through normal mouse event
handling code paths"
https://bugs.webkit.org/show_bug.cgi?id=143749
http://trac.webkit.org/changeset/182912
http://trac.webkit.org/changeset/182920
2015-04-17 Antti Koivisto <antti@apple.com>
Network Cache: Read resource record and body in parallel
https://bugs.webkit.org/show_bug.cgi?id=143879
Reviewed by Chris Dumez.
We currently first fetch the record file and then fetch the body blob if needed.
We can do both operations in parallel to reduce latency.
* NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
(WebKit::NetworkCache::traverseCacheFiles):
Do all validation in the client.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::synchronize):
Maintain a bloom filter that contains the body blobs to avoid unnecessary IO attempts.
Delete any unknown file in cache directory.
(WebKit::NetworkCache::Storage::addToRecordFilter):
More informative name for record filter.
(WebKit::NetworkCache::Storage::mayContain):
(WebKit::NetworkCache::Storage::readRecord):
(WebKit::NetworkCache::Storage::storeBodyAsBlob):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
Start record read IO and body blob read IO in parallel.
(WebKit::NetworkCache::Storage::finishReadOperation):
The read is finished when we have both the record and the blob.
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::retrieve):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::Storage::shrink):
(WebKit::NetworkCache::Storage::addToContentsFilter): Deleted.
(WebKit::NetworkCache::Storage::decodeRecord): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation):
ReadOperation is now mutable and gathers the read result.
2015-04-16 Anders Carlsson <andersca@apple.com>
Stop installing WebKit2.framework
https://bugs.webkit.org/show_bug.cgi?id=143860
rdar://problem/18298491
Reviewed by Dan Bernstein.
* Configurations/WebKit2.xcconfig:
Set SKIP_INSTALL=YES for all SDKs except 10.9 where we still need it.
2015-04-17 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix the build with ENABLE(NETWORK_CACHE) and !ENABLE(SHAREABLE_RESOURCE).
* NetworkProcess/cache/NetworkCacheEntry.cpp:
* NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
(WebKit::NetworkCache::fileTimes): There's no st_birthtime in Linux.
2015-04-17 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] ResourceRequest cache policy is not encoded/decoded in IPC messages
https://bugs.webkit.org/show_bug.cgi?id=143867
Reviewed by Sergio Villar Senin.
Encode/Decode the ResourceRequest cache policy.
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
2015-04-16 Sungmann Cho <sungmann.cho@navercorp.com>
Use UNUSED_PARAM instead of the void casting to suppress unused parameter warnings.
https://bugs.webkit.org/show_bug.cgi?id=143750
Reviewed by Darin Adler.
No new tests, no behavior change.
* WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
(WebKit::NotificationPermissionRequestManager::NotificationPermissionRequestManager):
2015-04-16 Brady Eidson <beidson@apple.com>
Compiling a content extension fails when user's home directory is on a different volume from /var/tmp.
https://bugs.webkit.org/show_bug.cgi?id=143834
Reviewed by Anders Carlsson.
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::compiledToFile): Use moveFile() instead of renameFile()
2015-04-16 Anders Carlsson <andersca@apple.com>
Deprecate _WKWebsiteDataStore in favor of WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=143844
Reviewed by Dan Bernstein.
* Shared/API/Cocoa/WKFoundation.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _validate]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* mac/postprocess-framework-headers.sh:
2015-04-16 Alex Christensen <achristensen@webkit.org>
Removed unused WKUserContentFilterRef.
https://bugs.webkit.org/show_bug.cgi?id=143852
Reviewed by Sam Weinig.
* Shared/WebCompiledContentExtension.cpp:
(WebKit::LegacyContentExtensionCompilationClient::LegacyContentExtensionCompilationClient): Deleted.
(WebKit::LegacyContentExtensionCompilationClient::writeBytecode): Deleted.
(WebKit::LegacyContentExtensionCompilationClient::writeActions): Deleted.
(WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData): Deleted.
* Shared/WebCompiledContentExtension.h:
* UIProcess/API/C/WKUserContentFilterRef.cpp: Removed.
* UIProcess/API/C/WKUserContentFilterRef.h: Removed.
* UIProcess/API/C/WebKit2_C.h:
* UIProcess/API/Cocoa/_WKUserContentFilter.h:
* UIProcess/API/Cocoa/_WKUserContentFilter.mm:
(-[_WKUserContentFilter initWithName:serializedRules:]): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
2015-04-16 Beth Dakin <bdakin@apple.com>
Rubber-stamped by Tim Horton.
Fixing a small mistake in http://trac.webkit.org/changeset/182912 which should
make sure to use the most up-to-date pressure information when setting the force
on a WebMouseEvent.
* Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebMouseEvent):
2015-04-13 Jer Noble <jer.noble@apple.com>
[iOS] When simultaneously exiting-and-entering fullscreen, WebVideoFullscreenManager/Proxy becomes confused about what video element it represents.
https://bugs.webkit.org/show_bug.cgi?id=143680
Reviewed by Simon Fraser.
The original assumption of WebVideoFullscreenManager and -Proxy was that the two classes would represent a
single video element and its full screen state. With multiple animations in and out of fullscreen combined with
multiple fullscreen modes, this assumption no longer holds true.
Rather than having a WebVideoFullscreenManager which /isa/ WebVideoFullscreenModelVideoElement, the manager now
/hasa/ WebVideoFullscreenModelVideoElement (or has many such models). Ditto for WebVideoFullscreenManager and
WebVideoFullscreenInterfaceAVKit. The WebVideoFullscreenInterfaceAVKit still needs a WebVideoFullscreenModel to
communicate with, so a new wrapper class is used for that purpose, WebVideoFullscreenModelContext. Ditto for
WebVideoFullscreenModelVideoElement and the new class WebVideoFullscreenInterfaceContext. These context classes
are paired and share a contextId, allowing the manager and its proxy to route messages between the UIProcess's
WebVideoFullscreenInterfaceAVKit to-and-from the WebProcess's WebVideoFullscreenModelVideoElement.
Both the WebVideoFullscreenModelContext and the WebVideoFullscreenInterfaceContext take a back-pointer to their
manager or manager proxy, and each method on the context simply calls the matching method on the manager and
passes its contextId as a parameter.
Both the WebVideoFullscreenManager and the WebVideoFullscreenManagerProxy pass that contextId in each of their
cross-process messages.
On the other side, the manager and proxy also have a map between contextIds and their matching
WebVideoFullscreenModelVideoElement (in the case of WebVideoFullscreenManager) or
WebVideoFullscreenInterfaceAVKit (in the case of WebVideoFullscreenManagerProxy).
While this change is large by LoC, it is almost entirely boilerplate. The new and interesting pieces are these:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy): No longer a WebVideoFullscreenInterfaceAVKit.
(WebKit::WebVideoFullscreenManagerProxy::invalidate): Walk through the models and interfaces, invalidating each.
(WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface): Added. Return a new model and interface tuple.
(WebKit::WebVideoFullscreenManagerProxy::ensureModelAndInterface): Added. Lazily create, and add to the m_contextMap
a new model and interface object.
(WebKit::WebVideoFullscreenManagerProxy::ensureModel): Return the model half of ensureModelAndInterface().
(WebKit::WebVideoFullscreenManagerProxy::ensureInterface): Return the interface half of ensureModelAndInterface().
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreen): Walk through the outstanding interface objects, and if
any have a fullscreen mode which matches the about-to-be-fullscreen interface, request that that other interface
exit fullscreen.
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::nextContextId): Static, incrementing counter used as a contextId source.
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager): No longer a WebVideoFullscreenModelVideoElement.
(WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager): Walk through the models and interfaces, invalidating each.
(WebKit::WebVideoFullscreenManager::ensureModelAndInterface): Added. Return a new model and interface tuple.
(WebKit::WebVideoFullscreenManager::ensureModelAndInterface): Added. Lazily create, and add to the m_contextMap
a new model and interface object.
(WebKit::WebVideoFullscreenManager::ensureModel): Return the model half of ensureModelAndInterface().
(WebKit::WebVideoFullscreenManager::ensureInterface): Return the interface half of ensureModelAndInterface().
New classes and methods which just forward on to their owning objects:
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
(WebKit::WebVideoFullscreenModelContext::create):
(WebKit::WebVideoFullscreenModelContext::~WebVideoFullscreenModelContext):
(WebKit::WebVideoFullscreenModelContext::invalidate):
(WebKit::WebVideoFullscreenModelContext::layerHost):
(WebKit::WebVideoFullscreenModelContext::setLayerHost):
(WebKit::WebVideoFullscreenModelContext::setInitialVideoLayerFrame):
(WebKit::WebVideoFullscreenModelContext::WebVideoFullscreenModelContext):
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(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::requestExitFullscreen):
(WebKit::WebVideoFullscreenModelContext::setVideoLayerFrame):
(WebKit::WebVideoFullscreenModelContext::videoLayerFrame):
(WebKit::WebVideoFullscreenModelContext::setVideoLayerGravity):
(WebKit::WebVideoFullscreenModelContext::videoLayerGravity):
(WebKit::WebVideoFullscreenModelContext::selectAudioMediaOption):
(WebKit::WebVideoFullscreenModelContext::selectLegibleMediaOption):
(WebKit::WebVideoFullscreenModelContext::fullscreenModeChanged):
(WebKit::WebVideoFullscreenModelContext::didSetupFullscreen):
(WebKit::WebVideoFullscreenModelContext::didEnterFullscreen):
(WebKit::WebVideoFullscreenModelContext::didExitFullscreen):
(WebKit::WebVideoFullscreenModelContext::didCleanupFullscreen):
(WebKit::WebVideoFullscreenModelContext::fullscreenMayReturnToInline):
* WebProcess/ios/WebVideoFullscreenManager.h:
(WebKit::WebVideoFullscreenInterfaceContext::create):
(WebKit::WebVideoFullscreenInterfaceContext::invalidate):
(WebKit::WebVideoFullscreenInterfaceContext::layerHostingContext):
(WebKit::WebVideoFullscreenInterfaceContext::isAnimating):
(WebKit::WebVideoFullscreenInterfaceContext::setIsAnimating):
(WebKit::WebVideoFullscreenInterfaceContext::targetIsFullscreen):
(WebKit::WebVideoFullscreenInterfaceContext::setTargetIsFullscreen):
(WebKit::WebVideoFullscreenInterfaceContext::fullscreenMode):
(WebKit::WebVideoFullscreenInterfaceContext::setFullscreenMode):
(WebKit::WebVideoFullscreenInterfaceContext::isFullscreen):
(WebKit::WebVideoFullscreenInterfaceContext::setIsFullscreen):
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenInterfaceContext::WebVideoFullscreenInterfaceContext):
(WebKit::WebVideoFullscreenInterfaceContext::~WebVideoFullscreenInterfaceContext):
(WebKit::WebVideoFullscreenInterfaceContext::setLayerHostingContext):
(WebKit::WebVideoFullscreenInterfaceContext::resetMediaState):
(WebKit::WebVideoFullscreenInterfaceContext::setDuration):
(WebKit::WebVideoFullscreenInterfaceContext::setCurrentTime):
(WebKit::WebVideoFullscreenInterfaceContext::setBufferedTime):
(WebKit::WebVideoFullscreenInterfaceContext::setRate):
(WebKit::WebVideoFullscreenInterfaceContext::setVideoDimensions):
(WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges):
(WebKit::WebVideoFullscreenInterfaceContext::setCanPlayFastReverse):
(WebKit::WebVideoFullscreenInterfaceContext::setAudioMediaSelectionOptions):
(WebKit::WebVideoFullscreenInterfaceContext::setLegibleMediaSelectionOptions):
(WebKit::WebVideoFullscreenInterfaceContext::setExternalPlayback):
Cross-process methods which now take a contextId parameter:
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::WebVideoFullscreenManagerProxy::resetMediaState):
(WebKit::WebVideoFullscreenManagerProxy::setCurrentTime):
(WebKit::WebVideoFullscreenManagerProxy::setBufferedTime):
(WebKit::WebVideoFullscreenManagerProxy::setVideoDimensions):
(WebKit::WebVideoFullscreenManagerProxy::setSeekableRangesVector):
(WebKit::WebVideoFullscreenManagerProxy::setCanPlayFastReverse):
(WebKit::WebVideoFullscreenManagerProxy::setAudioMediaSelectionOptions):
(WebKit::WebVideoFullscreenManagerProxy::setLegibleMediaSelectionOptions):
(WebKit::WebVideoFullscreenManagerProxy::setExternalPlaybackProperties):
(WebKit::WebVideoFullscreenManagerProxy::setDuration):
(WebKit::WebVideoFullscreenManagerProxy::setRate):
(WebKit::WebVideoFullscreenManagerProxy::exitFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::cleanupFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::preparedToReturnToInline):
(WebKit::WebVideoFullscreenManagerProxy::play):
(WebKit::WebVideoFullscreenManagerProxy::pause):
(WebKit::WebVideoFullscreenManagerProxy::togglePlayState):
(WebKit::WebVideoFullscreenManagerProxy::beginScrubbing):
(WebKit::WebVideoFullscreenManagerProxy::endScrubbing):
(WebKit::WebVideoFullscreenManagerProxy::seekToTime):
(WebKit::WebVideoFullscreenManagerProxy::fastSeek):
(WebKit::WebVideoFullscreenManagerProxy::beginScanningForward):
(WebKit::WebVideoFullscreenManagerProxy::beginScanningBackward):
(WebKit::WebVideoFullscreenManagerProxy::endScanning):
(WebKit::WebVideoFullscreenManagerProxy::requestExitFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::didSetupFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity):
(WebKit::WebVideoFullscreenManagerProxy::selectAudioMediaOption):
(WebKit::WebVideoFullscreenManagerProxy::selectLegibleMediaOption):
(WebKit::WebVideoFullscreenManagerProxy::fullscreenModeChanged):
(WebKit::WebVideoFullscreenManagerProxy::fullscreenMayReturnToInline):
(WebKit::WebVideoFullscreenManagerProxy::videoLayerFrame): Deleted.
(WebKit::WebVideoFullscreenManagerProxy::videoLayerGravity): Deleted.
* WebProcess/ios/WebVideoFullscreenManager.messages.in:
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::resetMediaState):
(WebKit::WebVideoFullscreenManager::setDuration):
(WebKit::WebVideoFullscreenManager::setCurrentTime):
(WebKit::WebVideoFullscreenManager::setBufferedTime):
(WebKit::WebVideoFullscreenManager::setRate):
(WebKit::WebVideoFullscreenManager::setVideoDimensions):
(WebKit::WebVideoFullscreenManager::setSeekableRanges):
(WebKit::WebVideoFullscreenManager::setCanPlayFastReverse):
(WebKit::WebVideoFullscreenManager::setAudioMediaSelectionOptions):
(WebKit::WebVideoFullscreenManager::setLegibleMediaSelectionOptions):
(WebKit::WebVideoFullscreenManager::setExternalPlayback):
(WebKit::WebVideoFullscreenManager::play):
(WebKit::WebVideoFullscreenManager::pause):
(WebKit::WebVideoFullscreenManager::togglePlayState):
(WebKit::WebVideoFullscreenManager::beginScrubbing):
(WebKit::WebVideoFullscreenManager::endScrubbing):
(WebKit::WebVideoFullscreenManager::seekToTime):
(WebKit::WebVideoFullscreenManager::fastSeek):
(WebKit::WebVideoFullscreenManager::beginScanningForward):
(WebKit::WebVideoFullscreenManager::beginScanningBackward):
(WebKit::WebVideoFullscreenManager::endScanning):
(WebKit::WebVideoFullscreenManager::requestExitFullscreen):
(WebKit::WebVideoFullscreenManager::selectAudioMediaOption):
(WebKit::WebVideoFullscreenManager::selectLegibleMediaOption):
(WebKit::WebVideoFullscreenManager::fullscreenModeChanged):
(WebKit::WebVideoFullscreenManager::didSetupFullscreen):
(WebKit::WebVideoFullscreenManager::didEnterFullscreen):
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen):
(WebKit::WebVideoFullscreenManager::setVideoLayerGravityEnum):
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline):
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreen): Deleted.
2015-04-16 Beth Dakin <bdakin@apple.com>
Force mouse events should go through normal mouse event handling code paths
https://bugs.webkit.org/show_bug.cgi?id=143749
-and corresponding-
rdar://problem/20472895
Reviewed by Dean Jackson.
This patch makes pressureChangeWithEvent create NativeWebMouseEvents with the
NSEventTypePressures that is gets and sends those down to the web process.
Re-name pressureEvent to lastPressureEvent. Now that event can sometimes be an
NSEventTypePressure, the new name makes it clear how the second parameter differs
from the first.
* Shared/NativeWebMouseEvent.h:
New event types for the new types of events.
* Shared/WebEvent.h:
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
* Shared/mac/NativeWebMouseEventMac.mm:
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
* Shared/mac/WebEventFactory.h:
All of the square-peg, round-hole problems of massaging the NSEventTypePressures
events into WebMouseEvents is taken care of here.
* Shared/mac/WebEventFactory.mm:
(WebKit::mouseButtonForEvent):
(WebKit::globalPointForEvent):
(WebKit::pointForEvent):
(WebKit::WebEventFactory::createWebMouseEvent):
Instead of calling the old inputDeviceForceDidChange, create a NativeWebMouseEvent
and handle it.
* UIProcess/API/mac/WKView.mm:
(-[WKView pressureChangeWithEvent:]):
Handle the new types.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent):
Can delete inputDeviceForceDidChange since it’s no longer used.
(WebKit::WebPageProxy::inputDeviceForceDidChange): Deleted.
* UIProcess/WebPageProxy.h:
Handle the new types of mouse events properly.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::handleMouseEvent):
Delete inputDeviceForceDidChange() and m_lastForceStage.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::inputDeviceForceDidChange): Deleted.
Handle new WebEvent types.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
2015-04-16 Dan Bernstein <mitz@apple.com>
<rdar://problem/20575744> Also include a definition of __NSd_{current deployment target} in WKFoundation.h.
Reviewed by Tim Horton.
* WebKit2.xcodeproj/project.pbxproj:
2015-04-16 Timothy Horton <timothy_horton@apple.com>
Provide a mechanism through the legacy SPI to know when swipe gestures begin and end
https://bugs.webkit.org/show_bug.cgi?id=143740
<rdar://problem/20468540>
Reviewed by Dan Bernstein.
In the C SPI, add three WKPageLoaderClient callbacks for the three
navigation gesture events (did begin, will end, did end).
* UIProcess/API/C/WKPageLoaderClient.h:
Add the callbacks.
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::navigationGestureDidBegin):
(API::LoaderClient::navigationGestureWillEnd):
(API::LoaderClient::navigationGestureDidEnd):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::navigationGestureDidBegin):
(WebKit::WebPageProxy::navigationGestureWillEnd):
(WebKit::WebPageProxy::navigationGestureDidEnd):
Dispatch navigation gesture events to the loader client as well as
(after a bounce through the PageClient) the navigation delegate.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
Call the callbacks.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::trackSwipeGesture):
(WebKit::ViewGestureController::willEndSwipeGesture):
While we were already informing WebPageProxy of 'did begin' and 'did end'
navigation gesture events, we were missing 'will end'. Add it.
2015-04-16 Tim Horton <timothy_horton@apple.com>
Dispatching multiple asynchronous animated resizes in parallel causes page scale to detach from reality
https://bugs.webkit.org/show_bug.cgi?id=143812
<rdar://problem/19866038>
Reviewed by Simon Fraser.
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
No cats in transaction (more of these below, too).
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleTap):
(WebKit::WebPage::commitPotentialTap):
(WebKit::WebPage::dynamicViewportSizeUpdate):
Add an incrementing ID to dynamicViewportSizeUpdates. The UI process keeps
the current ID, and it is bounced through the Web process (dynamicViewportSizeUpdates)
back to the UI process (dynamicViewportUpdateChangedTarget). If we have
dispatched another dynamicViewportSizeUpdate in the interim, ignore
the intermediate target.
2015-04-16 Sungmann Cho <sungmann.cho@navercorp.com>
Remove PluginController::isPluginVisible().
https://bugs.webkit.org/show_bug.cgi?id=143830
Reviewed by Darin Adler.
PluginController::isPluginVisible() was introduced by http://webkit.org/b/60285.
This method had been used only for WebKit2 on Windows, and no one uses it now.
So we can remove it.
No new tests, no behavior change.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::isPluginVisible): Deleted.
* PluginProcess/PluginControllerProxy.h:
* WebProcess/Plugins/PluginController.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::isPluginVisible): Deleted.
* WebProcess/Plugins/PluginView.h:
2015-04-16 Gyuyoung Kim <gyuyoung.kim@webkit.org>
[EFL] Disable a flaky ewk_context_network_process_model() API test
https://bugs.webkit.org/show_bug.cgi?id=143824
Reviewed by Csaba Osztrogonác.
ewk_context_network_process_model has been often failed. Though Bug 142967
was filed to fix this issue, it is not solved yet. To maintain EFL bot, this patch
disables it until fixing it.
* UIProcess/API/efl/tests/test_ewk2_context.cpp:
(TEST_F):
2015-04-16 Csaba Osztrogonác <ossy@webkit.org>
[WK2] Forwarding headers generator shouldn't generate unnecessary headers
https://bugs.webkit.org/show_bug.cgi?id=143820
Reviewed by Carlos Garcia Campos.
* Scripts/generate-forwarding-headers.pl:
(collectNeededHeaders):
2015-04-16 Csaba Osztrogonác <ossy@webkit.org>
[GTK] Run forwarding headers generator unconditionally
https://bugs.webkit.org/show_bug.cgi?id=143819
Reviewed by Carlos Garcia Campos.
* PlatformGTK.cmake:
2015-04-15 Brent Fulgham <bfulgham@apple.com>
[Mac] Disable "Save to Downloads" option for local files
https://bugs.webkit.org/show_bug.cgi?id=143794
Reviewed by Tim Horton.
Disable the Image and Media download options if the download
target is a local file. We can only download web resources;
anything else is actually a no-op.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
2015-04-15 Anders Carlsson <andersca@apple.com>
Make websiteDataStore on WKWebViewConfiguration public
https://bugs.webkit.org/show_bug.cgi?id=143810
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration websiteDataStore]):
(-[WKWebViewConfiguration setWebsiteDataStore:]):
(-[WKWebViewConfiguration _websiteDataStore]):
(-[WKWebViewConfiguration _setWebsiteDataStore:]):
2015-04-15 Anders Carlsson <andersca@apple.com>
Make WKWebsiteDataStore public
https://bugs.webkit.org/show_bug.cgi?id=143805
Reviewed by Dan Bernstein.
Rename the current _WKWebsiteDataStore to WKWebsiteDataStore. Make init unavailable and tighten up the
types of the defaultDataStore and nonPersistentDataStore class methods.
Add a new _WKWebsiteDataStore @interface and @implementation that derives from WKWebsiteDataStore
and forwards the defaultDataStore and nonPersistentDataStore method calls.
* Shared/API/Cocoa/WebKit.h:
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _websiteDataStore]):
* UIProcess/API/Cocoa/WKWebsiteDataStore.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.h.
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.mm.
(+[WKWebsiteDataStore defaultDataStore]):
(+[WKWebsiteDataStore nonPersistentDataStore]):
(-[WKWebsiteDataStore dealloc]):
(-[WKWebsiteDataStore isNonPersistent]):
(toSystemClockTime):
(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(toWebsiteDataRecords):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
(-[WKWebsiteDataStore _apiObject]):
* UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h.
(WebKit::wrapper):
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(+[_WKWebsiteDataStore defaultDataStore]):
(+[_WKWebsiteDataStore nonPersistentDataStore]):
(-[_WKWebsiteDataStore dealloc]): Deleted.
(-[_WKWebsiteDataStore isNonPersistent]): Deleted.
(toWebsiteDataTypes): Deleted.
(toSystemClockTime): Deleted.
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): Deleted.
(-[_WKWebsiteDataStore _apiObject]): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
2015-04-15 Timothy Horton <timothy_horton@apple.com>
Custom CSS cursors do not use -webkit-image-set on retina displays
https://bugs.webkit.org/show_bug.cgi?id=120783
Reviewed by Beth Dakin.
Patch by Evan Wallace <evan.exe@gmail.com>.
Serialize the cursor image scale for SetCursor messages so custom
CSS cursors work with -webkit-image-set on retina displays.
* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::ArgumentCoder<Cursor>::encode):
(CoreIPC::ArgumentCoder<Cursor>::decode):
2015-04-15 Alex Christensen <achristensen@webkit.org>
Progress towards CMake on Mac.
https://bugs.webkit.org/show_bug.cgi?id=143785
Reviewed by Csaba Osztrogonác.
* CMakeLists.txt:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
2015-04-15 Anders Carlsson <andersca@apple.com>
Make WKWebsiteDataRecord public
https://bugs.webkit.org/show_bug.cgi?id=143796
Reviewed by Dan Bernstein.
Rename _WKWebsiteDataRecord and associated files to WKWebsiteDataRecord and
add a new _WKWebsiteDataRecord.h with a class @interface declaration that just
inherits from WKWebsiteDataRecord. We don't need an @implementation since nobody is expected
to allocate _WKWebsiteDataRecord objects.
* Shared/API/Cocoa/WebKit.h:
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* UIProcess/API/Cocoa/WKWebsiteDataRecord.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataRecord.h.
* UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm.
(-[WKWebsiteDataRecord dealloc]):
(dataTypesToString):
(-[WKWebsiteDataRecord description]):
(-[WKWebsiteDataRecord displayName]):
(-[WKWebsiteDataRecord dataTypes]):
(-[WKWebsiteDataRecord _apiObject]):
* UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h.
(WebKit::wrapper):
(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWebsiteDataRecords):
* WebKit2.xcodeproj/project.pbxproj:
2015-04-13 Jer Noble <jer.noble@apple.com>
[Fullscreen] ChromeClient::exitVideoFullscreen() should take a pointer to a HTMLVideoElement.
https://bugs.webkit.org/show_bug.cgi?id=143674
Reviewed by Darin Adler.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): Takes a reference.
(WebKit::WebChromeClient::exitVideoFullscreenForVideoElement): Renamed from exitVideoFullscreen().
(WebKit::WebChromeClient::exitVideoFullscreen): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/ios/WebVideoFullscreenManager.h:
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Ditto.
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement): Renamed from exitVideoFullscreen().
(WebKit::WebVideoFullscreenManager::didEnterFullscreen): Pass a reference.
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Ditto.
(WebKit::WebVideoFullscreenManager::exitVideoFullscreen): Deleted.
2015-04-15 Antti Koivisto <antti@apple.com>
Network Cache: Inline small body data to record file
https://bugs.webkit.org/show_bug.cgi?id=143783
Reviewed by Chris Dumez.
We currently save all body data as separate files. We can improve space efficiency and do less reads and writes
by inlining smaller resource bodies with the header.
* NetworkProcess/cache/NetworkCacheIOChannel.h:
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::IOChannel::write):
Add WorkQueue argument to allow specifying which queue the result is submitted to.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::decodeRecordMetaData):
Add a boolean indicating whether the body is inlined.
(WebKit::NetworkCache::decodeRecordHeader):
(WebKit::NetworkCache::Storage::decodeRecord):
(WebKit::NetworkCache::encodeRecordMetaData):
(WebKit::NetworkCache::Storage::storeBodyAsBlob):
(WebKit::NetworkCache::Storage::encodeRecord):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
Read the record first, then read the blob if needed.
Submit the read operation directly from the main queue. Only thing we do is opening an IO channel
and that uses O_NONBLOCK.
Process the read results in the IO work queue where we now do the blob retrieval.
(WebKit::NetworkCache::shouldStoreBodyAsBlob):
The current threshold for saving a separate blob is 16KB.
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::createRecord): Deleted.
(WebKit::NetworkCache::encodeRecordHeader): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
2015-04-15 Tim Horton <timothy_horton@apple.com>
Non-local keyboards don't update scroll view parameters
https://bugs.webkit.org/show_bug.cgi?id=143791
<rdar://problem/18974020>
* Platform/spi/ios/UIKitSPI.h:
Fix the build.
2015-04-15 Tim Horton <timothy_horton@apple.com>
Non-local keyboards don't update scroll view parameters
https://bugs.webkit.org/show_bug.cgi?id=143791
<rdar://problem/18974020>
Reviewed by Enrica Casucci.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _shouldUpdateKeyboardWithInfo:]):
(-[WKWebView _keyboardWillChangeFrame:]):
(-[WKWebView _keyboardWillShow:]):
Make sure that we update scroll view parameters (obscured insets, etc.)
if we have a non-local keyboard, in addition to the cases where we have an assisted node.
2015-04-15 Dan Bernstein <mitz@apple.com>
<rdar://problem/20549298> No matching __NSi_ definition for postprocessed value of WK_{MAC,IOS}_TBA
https://bugs.webkit.org/show_bug.cgi?id=143786
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WKFoundation.h: Added a placeholder for the postprocessing script to
insert a definition of __NSi_* for the current deployment target. Import CoreFoundation.h so
that we can check if the macro is already defined.
* WebKit2.xcodeproj/project.pbxproj: In the Postprocess WKFoundation.h script build phase,
replace the placeholder with a definition of __NSi_{current deployment target} if not
already defined.
2015-04-14 Anders Carlsson <andersca@apple.com>
Make creating send rights from shared memory more robust
https://bugs.webkit.org/show_bug.cgi?id=143730
rdar://problem/16595870
Reviewed by Darin Adler.
This cleans up creation of handles and send rights and also fixes a bug where it would be impossible
to send more than 128 MB of shared memory in a single object.
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::makeMemoryEntry):
New helper function that creates a memory entry send right. This uses MAP_MEM_VM_SHARE which ensures
that memory objects larger than 128 MB will be handled correctly.
(WebKit::SharedMemory::create):
Call makeMemoryEntry.
(WebKit::SharedMemory::createHandle):
Call createSendRight.
(WebKit::SharedMemory::createSendRight):
Call makeMemoryEntry and add the necessary assertions.
2015-04-15 Eric Carlson <eric.carlson@apple.com>
Generalize "isPlayingAudio" to include other media characteristics
https://bugs.webkit.org/show_bug.cgi?id=143713
Reviewed by Jer Noble.
* UIProcess/API/C/WKPage.cpp:
(toGenericCallbackFunction): Scope CallbackBase.
(WKPageForceRepaint): Ditto.
(WKPageValidateCommand): Ditto.
(WKPageComputePagesForPrinting): Ditto.
* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _requestSnapshotIfNeeded]): Ditto.
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFirstResponder]): Ditto.
(-[WKView updateFontPanelIfNeeded]): Ditto.
(-[WKView validateUserInterfaceItem:]): Ditto.
(-[WKView startSpeaking:]): Ditto.
(-[WKView selectedRangeWithCompletionHandler:]): Ditto.
(-[WKView markedRangeWithCompletionHandler:]): Ditto.
(-[WKView hasMarkedTextWithCompletionHandler:]): Ditto.
(-[WKView attributedSubstringForProposedRange:completionHandler:]): Ditto.
(-[WKView firstRectForCharacterRange:completionHandler:]): Ditto.
(-[WKView characterIndexForPoint:completionHandler:]): Ditto.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingMediaDidChange): Rename from isPlayingAudioDidChange.
(WebKit::WebPageProxy::isPlayingAudioDidChange): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController dealloc]): Scope CallbackBase.
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Ditto.
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): Ditto.
(-[WKPrintingView _askPageToComputePageRects]): Ditto.
(-[WKPrintingView _drawPreview:]): Ditto.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::setPluginIsPlayingAudio):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::isPlayingMediaDidChange):
(WebKit::WebChromeClient::isPlayingAudioDidChange): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:
2015-04-15 Antti Koivisto <antti@apple.com>
Network Cache: Add thread-safe accessors for storage paths
https://bugs.webkit.org/show_bug.cgi?id=143668
Reviewed by Darin Adler.
Less need to use StringCapture.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::dumpFilePath):
(WebKit::NetworkCache::Cache::storagePath):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::makeRecordsDirectoryPath):
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::basePath):
(WebKit::NetworkCache::Storage::versionPath):
(WebKit::NetworkCache::Storage::recordsPath):
(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::finishReadOperation):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::Storage::shrink):
(WebKit::NetworkCache::Storage::deleteOldVersions):
(WebKit::NetworkCache::makeRecordDirectoryPath): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::baseDirectoryPath): Deleted.
(WebKit::NetworkCache::Storage::directoryPath): Deleted.
2015-04-14 Tim Horton <timothy_horton@apple.com>
Update gesture swipe shadow style
https://bugs.webkit.org/show_bug.cgi?id=143616
<rdar://problem/19295843>
Reviewed by Darin Adler.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
For the modern shadow style, use a layer stretched along the edge of the swiping content
with the newly added PNGs as the layer contents.
Add a dimming layer over the lower layer of content which fades in/out
during the swipe.
(WebKit::ViewGestureController::handleSwipeGesture):
Fade the dimming layer in and out during the entire swipe.
Fade the shadow layer out during the last few pixels of the swipe.
(WebKit::ViewGestureController::removeSwipeSnapshot):
Unparent the new layers.
* WebKit2.xcodeproj/project.pbxproj:
* Resources/SwipeShadow.png:
* Resources/SwipeShadow@2x.png:
Add the new resources.
2015-04-14 Brian Weinstein <bweinstein@apple.com>
Add SPI to clear HSTS hosts added since a date.
https://bugs.webkit.org/show_bug.cgi?id=143726
and
rdar://problem/16664597
Reviewed by Anders Carlsson.
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextResetHSTSHostsAddedAfterDate): Call into the WebProcessPool.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate): Call CFNetwork SPI to clear HSTS hosts added
after the given date.
* UIProcess/WebProcessPool.h:
2015-04-14 Anders Carlsson <andersca@apple.com>
More work on making the SharedMemory interface more sane
https://bugs.webkit.org/show_bug.cgi?id=143718
Reviewed by Andreas Kling.
Get rid of m_shouldVMDeallocateData. The idea is that shared memory created by calling
SharedMemory::allocate has a non-null m_data pointer, and a null m_port. Shared memory created
by calling SharedMemory::create with a pointer and a length has a non-null port but a null m_data
since the data can be unmapped by the caller and we don't want to hold on to dangling pointers.
* Platform/SharedMemory.h:
(WebKit::SharedMemory::data):
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::allocate):
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::map):
(WebKit::SharedMemory::~SharedMemory):
(WebKit::SharedMemory::createHandle):
2015-04-14 Antti Koivisto <antti@apple.com>
Network Cache: Deduplicate body data
https://bugs.webkit.org/show_bug.cgi?id=143652
Reviewed by Darin Adler.
It is common to have cache entries with identical body data. This happens when the same resource is loaded from
a different URL (https vs http, slash vs no-slash at end, etc.). It also happens when the same URL is
referenced from different cache partitions.
We can improve disk space efficiency and use less memory by sharing identical body data between cache entries.
This patch splits the body data out from the record file. The new record file contains meta data and response
headers only. Body data is stored using the new BlobStorage interface. Files are deduplicated by computing
SHA1 hash over the data and looking for an existing blob with the same hash. If found the existing entry
is reused by creating a hard link to it.
The new disk structure looks like this:
WebKitCache/
Version 3/
Blobs/
0A3C9A970ADA27FAE9BD7BC630BAD0B929C293C0
0A6B8060BA77DF92C82A2FD7AF58F79524D8F34C
...
Records/
apple.com/
0B8645B04E7EC78C178B7460052601C2
0B8645B04E7EC78C178B7460052601C2-body
0CB1A3638D1C5A09C5E3283A74FA040B
0CB1A3638D1C5A09C5E3283A74FA040B-body
...
Each record file has an associated -body which is a hard link to a file in the Blobs directory.
The patch increases effective capacity by 10-20% with a typical cache. It also saves memory especially when identical
resources are used in multiple tabs.
Currently all >0 sized resources are stored as shared blobs. In future small resources should be integrated into record
files and blobs used for larger files only.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::update):
Adopt the new storage interface.
(WebKit::NetworkCache::Cache::dumpContentsToFile):
* NetworkProcess/cache/NetworkCacheBlobStorage.cpp: Added.
(WebKit::NetworkCache::BlobStorage::BlobStorage):
(WebKit::NetworkCache::BlobStorage::synchronize):
Compute size and delete unused files from the Blobs directory (link count == 1).
(WebKit::NetworkCache::BlobStorage::blobPath):
(WebKit::NetworkCache::BlobStorage::add):
(WebKit::NetworkCache::BlobStorage::get):
Interface for storing and retrieving data blobs. Blobs are deduplicated on add.
(WebKit::NetworkCache::BlobStorage::remove):
Removes the link but doesn't remove the blob even if there are no other clients. That happens on next synchronize().
(WebKit::NetworkCache::BlobStorage::shareCount):
Checks the link count to get the number of clients.
* NetworkProcess/cache/NetworkCacheBlobStorage.h: Added.
(WebKit::NetworkCache::BlobStorage::approximateSize):
* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCache::Coder<SHA1::Digest>::encode):
(WebKit::NetworkCache::Coder<SHA1::Digest>::decode):
* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheData.h:
(WebKit::NetworkCache::Data::isEmpty):
* NetworkProcess/cache/NetworkCacheDataCocoa.mm:
(WebKit::NetworkCache::Data::empty):
(WebKit::NetworkCache::Data::fromMap):
(WebKit::NetworkCache::mapFile):
(WebKit::NetworkCache::computeSHA1):
(WebKit::NetworkCache::bytesEqual):
Add some helpers.
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::asJSON):
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::IOChannel):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::makeRecordDirectoryPath):
(WebKit::NetworkCache::makeBlobDirectoryPath):
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::approximateSize):
(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::partitionPathForKey):
(WebKit::NetworkCache::recordPathForKey):
(WebKit::NetworkCache::bodyPath):
(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecordHeader):
(WebKit::NetworkCache::createRecord):
(WebKit::NetworkCache::encodeRecordMetaData):
(WebKit::NetworkCache::encodeRecordHeader):
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::updateFileModificationTime):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
Read both the blob and the record entry.
(WebKit::NetworkCache::Storage::finishReadOperation):
Factor to a function.
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
We don't need separate full write and header write paths anymore. Everything is treated
as a full write and deduplication stops us writing the body again.
This simplifies the code and data structures.
(WebKit::NetworkCache::Storage::finishWriteOperation):
Factor to a function.
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::deletionProbability):
Take the sharing count into account when computing deletion probability.
It is less useful to delete a record that shares its body with others as data won't get deleted.
(WebKit::NetworkCache::Storage::shrinkIfNeeded):
(WebKit::NetworkCache::Storage::shrink):
(WebKit::NetworkCache::Storage::deleteOldVersions):
(WebKit::NetworkCache::directoryPathForKey): Deleted.
(WebKit::NetworkCache::filePathForKey): Deleted.
(WebKit::NetworkCache::openFileForKey): Deleted.
(WebKit::NetworkCache::decodeRecord): Deleted.
(WebKit::NetworkCache::Storage::update): Deleted.
No need for separate update interface anymore. Regular store() avoids unnecessary body write.
(WebKit::NetworkCache::Storage::dispatchFullWriteOperation): Deleted.
(WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
* WebKit2.xcodeproj/project.pbxproj:
2015-04-14 Chris Dumez <cdumez@apple.com>
REGRESSION(r182603): [GTK] More than 500 crashes on the layout tests with the debug build.
https://bugs.webkit.org/show_bug.cgi?id=143715
Reviewed by Darin Adler.
Enable assertions checking that calling editorState() does not cause a
synchronous layout only on Mac and iOS. This assertion does not
necessarily hold true on other ports as each one as its own
platformEditorState() implementation. In particular, this assertion
was being hit on GTK.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChangeSelection):
2015-04-13 Alexey Proskuryakov <ap@apple.com>
Build fixes after r182772.
* UIProcess/API/mac/WKView.mm:
(-[WKView _updateAutomaticallyComputedFixedLayoutSize]): Make a CGSize, not an NSSize.
(-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]): Moved implementation
to the correct place.
(-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]): Ditto.
(-[WKView _layoutMode]): Use a memeber from _data directly, not via a method.
2015-04-13 Alexey Proskuryakov <ap@apple.com>
More build fix.
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setDragImage):
2015-04-13 Hunseop Jeong <hs85.jeong@samsung.com>
[EFL][GTK] Fix build break after r182753
https://bugs.webkit.org/show_bug.cgi?id=143689
Reviewed by Anders Carlsson.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage):
(IPC::Connection::sendOutgoingMessage):
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::allocate):
(WebKit::accessModeMMap):
(WebKit::SharedMemory::map):
(WebKit::SharedMemory::create): Deleted.
2015-04-13 Alexey Proskuryakov <ap@apple.com>
Build fix.
* UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setDragImage):
2015-04-13 Anders Carlsson <andersca@apple.com>
Keep track of each shared memory object's protection when deciding whether to return our existing port
https://bugs.webkit.org/show_bug.cgi?id=143687
Reviewed by Tim Horton.
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::machProtection):
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::map):
(WebKit::SharedMemory::createHandle):
2015-04-13 Tim Horton <timothy_horton@apple.com>
Add a persistent, fixed scale factor to make it easy to scale down WK(Web)Views
https://bugs.webkit.org/show_bug.cgi?id=143560
<rdar://problem/16302047>
Reviewed by Darin Adler.
Add a new "view" scale factor to WKView and WKWebView.
Unlike page scale (or "magnification" in the API), view scale:
- persists between page loads
- persists between Web process crashes
- is not user adjustable
- can reliably be < 1
The page scale and view scale are multiplied together whenever we push
a new page scale down into WebCore, so the implementation of view scale
is transparent to WebCore, and acts effectively as a constant multiplier
for the (user-adjustable) page scale factor.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::scaleView):
Add scaleView, which updates our cached viewScaleFactor and pushes it to the Web process.
(WebKit::WebPageProxy::creationParameters):
Plumb viewScaleFactor through the page creation parameters.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::viewScaleFactor): Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
If the viewScaleFactor is not 1 at creation time, call scalePage with a page scale of 1.
Internally, scalePage will multiply in the viewScaleFactor and push it all to the Web process.
(WebKit::WebPage::scalePage):
Multiply the page scale factor by the view scale factor before passing it to WebCore.
(WebKit::WebPage::scalePageInViewCoordinates):
Early returns need to check the total scale, not just the new page scale.
(WebKit::WebPage::totalScaleFactor):
The scale that we get back from WebCore::Page::pageScaleFactor is the product
of WebKit2's view and page scales. So, here we'll call that the totalScaleFactor.
(Might need a different name because it seems like "total" should include deviceScale too).
(WebKit::WebPage::pageScaleFactor):
WebKit2's notion of the pageScaleFactor does not include the view scale, so
divide it out of WebCore's page scale.
(WebKit::WebPage::scaleView):
Apply a new view scale, maintaining the current scroll position.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::viewScaleFactor):
* WebProcess/WebPage/WebPage.messages.in:
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
Plumb viewScaleFactor through the page creation parameters.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _viewScale]):
(-[WKWebView _setViewScale:]):
* UIProcess/API/mac/WKView.mm:
(-[WKView _viewScale]):
(-[WKView _setViewScale:]):
Push the new view scale to WebPage.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]):
(-[WKWebView _automaticallyComputesFixedLayoutSizeFromViewScale]):
* UIProcess/API/mac/WKView.mm:
(-[WKView setFrameSize:]):
(-[WKView _updateAutomaticallyComputedFixedLayoutSize]):
(-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]):
(-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]):
* UIProcess/API/mac/WKViewInternal.h:
Add a new layout mode, "DynamicSizeComputedFromViewScale",
which turns on fixed layout size mode, and sets the fixed layout size
based on the view's frame and view scale. The fixed layout size is maintained
as the frame of the view scaled by the inverse of the view scale. This
makes it very easy to maintain a WK(Web)View that is scaled down by
a constant amount, but is laid out as if it were not.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
Because the transient zoom mechanism touches layers that WebCore owns,
it mostly need to operate with totalScaleFactor, because that is what WebCore sees.
2015-04-10 Brent Fulgham <bfulgham@apple.com>
Expand test infrastructure to support scrolling tests
https://bugs.webkit.org/show_bug.cgi?id=143286
<rdar://problem/20375516>
Reviewed by Simon Fraser.
Extend the WK2 testing API to include a method for setting a JSC callback function to be triggered
by the new WebCore::WheelEventTestTrigger singleton.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageStartMonitoringScrollOperations): WK2 method that causes the testing system to begin tracking wheel events.
(WKBundlePageRegisterScrollOperationCompletionCallback): WK2 method to set the callback function for testing.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
2015-04-13 Enrica Casucci <enrica@apple.com>
Clients of WKWebView should be able to override drag functions.
https://bugs.webkit.org/show_bug.cgi?id=143618
Reviewed by Darin Adler.
WKWebView now implements the drag protocol functions and
forwards the calls to the inner WKView.
In the page client, when we receive a request to start drag
from the WebProcess, we call _dragImageForView in WKView with
the target view. The function calls dragImage on the given view,
so that its clients can override the dragImage function.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView draggingEntered:]):
(-[WKWebView draggingUpdated:]):
(-[WKWebView draggingExited:]):
(-[WKWebView prepareForDragOperation:]):
(-[WKWebView performDragOperation:]):
* UIProcess/API/mac/WKView.mm:
(-[WKView _dragImageForView:withImage:at:linkDrag:]):
(-[WKView _setDragImage:at:linkDrag:]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setDragImage):
2015-04-13 Alex Christensen <achristensen@webkit.org>
[iOS] Unreviewed build fix after r182760.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeSharedBuffer):
(IPC::decodeSharedBuffer):
Update SharedMemory function names.
2015-04-13 Anders Carlsson <andersca@apple.com>
Rename SharedMemory::create overloads
https://bugs.webkit.org/show_bug.cgi?id=143679
Reviewed by Beth Dakin.
Rename the SharedMemory::create overload that allocates memory to SharedMemory::allocate,
and the SharedMemory::create overload that maps in a handle to SharedMemory::map.
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::allocate):
(WebKit::SharedMemory::map):
(WebKit::SharedMemory::create): Deleted.
* Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::createShareable):
(WebKit::ShareableBitmap::create):
* Shared/ShareableResource.cpp:
(WebKit::ShareableResource::create):
* Shared/ShareableResource.h:
* Shared/WebCompiledContentExtension.cpp:
(WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData):
* Shared/WebCompiledContentExtensionData.cpp:
(WebKit::WebCompiledContentExtensionData::decode):
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::decode):
* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::resizeTable):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::setPromisedDataForImage):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::writeItemsToPasteboard):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::setBufferForType):
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::declareAndWriteDragImage):
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::getDataSelectionForPasteboard):
2015-04-13 Brady Eidson <beidson@apple.com>
Share sheets from Share menus appear outside the browser window.
<rdar://problem/20455592> and https://bugs.webkit.org/show_bug.cgi?id=143620
Reviewed by Darin Adler.
Refactor existing Sharing Service Picker code to also be used for the Share menu NSMenuItem.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
(WebKit::WebPageProxy::platformInitializeShareMenuItem):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WKSharingServicePickerDelegate.h: Added.
* UIProcess/mac/WKSharingServicePickerDelegate.mm: Added.
(+[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]):
(-[WKSharingServicePickerDelegate menuProxy]):
(-[WKSharingServicePickerDelegate setMenuProxy:]):
(-[WKSharingServicePickerDelegate setPicker:]):
(-[WKSharingServicePickerDelegate setFiltersEditingServices:]):
(-[WKSharingServicePickerDelegate setHandlesEditingReplacement:]):
(-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
(-[WKSharingServicePickerDelegate sharingServicePicker:delegateForSharingService:]):
(-[WKSharingServicePickerDelegate sharingService:willShareItems:]):
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
(-[WKSharingServicePickerDelegate sharingService:sourceWindowForShareItems:sharingContentScope:]):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
(+[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]): Deleted.
(-[WKSharingServicePickerDelegate menuProxy]): Deleted.
(-[WKSharingServicePickerDelegate setMenuProxy:]): Deleted.
(-[WKSharingServicePickerDelegate setPicker:]): Deleted.
(-[WKSharingServicePickerDelegate setIncludeEditorServices:]): Deleted.
(-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]): Deleted.
(-[WKSharingServicePickerDelegate sharingServicePicker:delegateForSharingService:]): Deleted.
(-[WKSharingServicePickerDelegate sharingService:willShareItems:]): Deleted.
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Deleted.
(-[WKSharingServicePickerDelegate sharingService:sourceWindowForShareItems:sharingContentScope:]): Deleted.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::platformInitializeShareMenuItem):
* WebKit2.xcodeproj/project.pbxproj:
2015-04-13 Anders Carlsson <andersca@apple.com>
Begin cleaning up the shared memory interface
https://bugs.webkit.org/show_bug.cgi?id=143677
Reviewed by Andreas Kling.
Rename createFromVMBuffer to create and add a protection parameter (which is currently unused).
Also, turn SharedMemory::Protection into a proper enum class.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::tryGetShareableHandleFromCFData):
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::create):
(WebKit::machProtection):
(WebKit::SharedMemory::createHandle):
(WebKit::SharedMemory::createFromVMBuffer): Deleted.
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
* Shared/ShareableBitmap.h:
* Shared/ShareableResource.cpp:
(WebKit::ShareableResource::create):
(WebKit::ShareableResource::createHandle):
* Shared/WebCompiledContentExtensionData.cpp:
(WebKit::WebCompiledContentExtensionData::encode):
(WebKit::WebCompiledContentExtensionData::decode):
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::createExtension):
* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::sendTable):
* UIProcess/mac/WKPrintingView.mm:
(pageDidDrawToImage):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::setPromisedDataForImage):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::writeItemsToPasteboard):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::declareAndWriteDragImage):
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::takeSnapshot):
(WebKit::WebPage::drawRectToImage):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::getDataSelectionForPasteboard):
2015-04-10 Jon Honeycutt <jhoneycutt@apple.com>
Cannot click "Next" button on Google two-factor auth setup page
<https://bugs.webkit.org/show_bug.cgi?id=143624>
<rdar://problem/19175714>
This issue occurs when this site focuses the submit button. When it
receives focus, we try to assist it. While we consider ourselves to be
assisting it, we ignore further gesture inputs for that node, including
the tap gesture.
To fix this, only assist input types that we know are assistable,
including text fields, select and date elements, etc.
Reviewed by Darin Adler.
* UIProcess/ios/WKContentViewInteraction.mm:
(isAssistableInputType):
If the type is a known-assistable type, return true.
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
Call isAssistableInputType() to determine whether we should do any kind
of assistance for this node.
2015-04-13 Beth Dakin <bdakin@apple.com>
Add force property to MouseEvents
https://bugs.webkit.org/show_bug.cgi?id=143569
-and corresponding-
rdar://problem/20472954
Reviewed by Darin Adler.
In order to accommodate adding force to all PlatformMouseEvents, we have to add it
to pass a caches pressure event to NativeWebMouseEvent and add force to
WebMouseEvent.
NativeWebMouseEvent now requires a second NSEvent for the pressureEvent.
* Shared/NativeWebMouseEvent.h:
WebMouseEvent takes a force parameter.
* Shared/WebEvent.h:
(WebKit::WebMouseEvent::force):
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
* Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode):
(WebKit::WebMouseEvent::decode):
* Shared/mac/NativeWebMouseEventMac.mm:
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
* Shared/mac/WebEventFactory.h:
* Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebMouseEvent):
Cache the most recent pressureEvent in _data so that it can be sent along to the
NativeWebMouseEvent constructor.
* UIProcess/API/mac/WKView.mm:
(-[WKView pressureChangeWithEvent:]):
(-[WKView acceptsFirstMouse:]):
(-[WKView shouldDelayWindowOrderingForEvent:]):
(-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
WebMouseEvent takes a force parameter.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::showContextMenuAtPoint):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::createWebEvent):
MouseEvent and PlatformMouseEvent both take force parameters too.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToURLWithSimulatedClick):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::WebPage::dragEnded):
(WebKit::WebPage::simulateMouseDown):
(WebKit::WebPage::simulateMouseUp):
(WebKit::WebPage::simulateMouseMotion):
The functions that dispatch the force events no longer take a PlatformMouseEvent
as a parameter.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::inputDeviceForceDidChange):
(WebKit::WebPage::immediateActionDidCancel):
2015-04-13 Andreas Kling <akling@apple.com>
Don't segregate heap objects based on Structure immortality.
<https://webkit.org/b/143638>
Reviewed by Darin Adler.
* WebProcess/Plugins/Netscape/JSNPObject.h:
2015-04-13 Timothy Horton <timothy_horton@apple.com>
javascript: links in inline PDFs shouldn't execute JavaScript in the context of the host website
https://bugs.webkit.org/show_bug.cgi?id=143642
<rdar://problem/18259355>
Reviewed by Darin Adler.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::clickedLink):
Don't follow javascript: URLs.
2015-04-10 Alex Christensen <achristensen@webkit.org>
[Content Extensions] Don't unmap shared memory while using it.
https://bugs.webkit.org/show_bug.cgi?id=143625
Reviewed by Darin Adler.
* Shared/WebCompiledContentExtension.cpp:
(WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData):
* Shared/WebCompiledContentExtensionData.h:
(WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData):
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::createExtension):
Keep the Data object alive as long as the SharedMemory that uses it.
2015-04-12 Darin Adler <darin@apple.com>
[Cocoa] Localizable strings are inconsistent and need to be regenerated
https://bugs.webkit.org/show_bug.cgi?id=143661
Reviewed by Dan Bernstein.
* UIProcess/WebEditCommandProxy.cpp:
(WebKit::WebEditCommandProxy::nameForEditAction): Also added a comment
about the fact that we have two copies of all the localizable strings.
2015-04-12 Sungmann Cho <sungmann.cho@navercorp.com>
Fix trival typos related to the word "coordinate".
https://bugs.webkit.org/show_bug.cgi?id=143644
Reviewed by Alexey Proskuryakov.
No new tests, no behavior change.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
* Shared/WebHitTestResult.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::lookupTextAtLocation):
2015-04-12 Sungmann Cho <sungmann.cho@navercorp.com>
Remove PluginModuleInfo.cpp from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=143643
Reviewed by Darin Adler.
Remove PluginModuleInfo.cpp from WebKit2 because it is totally empty.
No new tests, no behavior change.
* CMakeLists.txt:
* Shared/Plugins/PluginModuleInfo.cpp: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2015-04-11 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] Enable Symbol in web pages
https://bugs.webkit.org/show_bug.cgi?id=143375
Reviewed by Ryosuke Niwa.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
2015-04-08 Sam Weinig <sam@webkit.org>
Allow LaunchServices to handle URLs on link navigations
<rdar://problem/19446826>
https://bugs.webkit.org/show_bug.cgi?id=143544
Reviewed by Anders Carlsson.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::tryAppLink):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
Only let LaunchServices have a crack at the URL if the navigation is:
1) a main frame navigation
2) a result of a user gesture
2015-04-10 Tim Horton <timothy_horton@apple.com>
Replace setFixedLayoutSizeEnabled: with an enum of layout modes
https://bugs.webkit.org/show_bug.cgi?id=143576
Reviewed by Simon Fraser.
* UIProcess/API/C/WKLayoutMode.h: Added.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _layoutMode]):
(-[WKWebView _setLayoutMode:]):
(-[WKWebView _isFixedLayoutEnabled]): Deleted.
(-[WKWebView _setFixedLayoutEnabled:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/_WKLayoutMode.h: Added.
* UIProcess/API/mac/WKView.mm:
(-[WKView _layoutMode]):
(-[WKView _setLayoutMode:]):
(-[WKView _isFixedLayoutEnabled]): Deleted.
(-[WKView _setFixedLayoutEnabled:]): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
Add enums for "layout mode". Currently we have two values: "ViewSize",
which is the normal behavior, and "FixedSize", which is fixed layout mode.
More values will come in the future.
2015-04-10 Anders Carlsson <andersca@apple.com>
_WKWebsiteDataStore doesn't track and remove offline application cache entries
https://bugs.webkit.org/show_bug.cgi?id=143614
rdar://problem/20243235
Reviewed by Andreas Kling.
* Shared/WebsiteData/WebsiteDataTypes.h:
Add WebsiteDataTypeOfflineWebApplicationCache.
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm:
(dataTypesToString):
* UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):
Add WKWebsiteDataTypeOfflineWebApplicationCache.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
Create a custom application cache storage and fetch the origins from it.
(WebKit::WebsiteDataStore::removeData):
Delete either all the cache entries (since we don't track time in the application cache),
or the ones specified by the given entries.
2015-04-10 Eric Carlson <eric.carlson@apple.com>
[Mac] Refactor MediaPlaybackTarget
https://bugs.webkit.org/show_bug.cgi?id=143571
Reviewed by Jer Noble.
Pass a MediaPlaybackTargetContext across process boundary instead of a MediaPlaybackTarget.
* Shared/WebCoreArgumentCoders.h:
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encode): New.
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::decode): New.
* Shared/mac/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encodePlatformData): New.
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::decodePlatformData): New.
(IPC::ArgumentCoder<MediaPlaybackTarget>::encode): Deleted.
(IPC::ArgumentCoder<MediaPlaybackTarget>::decode): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChoosePlaybackTarget): Take a Ref<MediaPlaybackTarget>&&.
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::playbackTargetSelected): Take a Ref<MediaPlaybackTarget>&&.
2015-04-10 Hunseop Jeong <hs85.jeong@samsung.com>
Fix some minor typos related to the WebProcessCreationParameter.
https://bugs.webkit.org/show_bug.cgi?id=143598
Reviewed by Csaba Osztrogonác.
No new tests, no behavior change.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
2015-04-09 Andy Estes <aestes@apple.com>
[Cocoa] Add a HAVE(AVKIT) and use it
https://bugs.webkit.org/show_bug.cgi?id=143593
Reviewed by David Kilzer.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mayAutomaticallyShowVideoOptimized]): Returned false if !HAVE(AVKIT).
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Removed the check for < iOS 8.2.
(WebKit::WebPageProxy::reattachToWebProcess): Ditto.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::create): Created a version of this function that returns nullptr if
the minimum required version of iOS is less than 8.2 or if !HAVE(AVKIT).
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Only called Settings::setAVKitEnabled(true) if HAVE(AVKIT).
2015-04-09 Hunseop Jeong <hs85.jeong@samsung.com>
Use modern loops in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=143302
Reviewed by Darin Adler.
Use modern range for-loops in WebProcess.
No new tests, no behavior change.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::focusedWebPage):
(WebKit::WebProcess::webPageGroup):
(WebKit::WebProcess::setTextCheckerState):
(WebKit::WebProcess::resetAllGeolocationPermissions):
2015-04-09 Gordon Sheridan <gordon_sheridan@apple.com>
Track IconDatabase retain counts for WebContent processes. Balance retain/releases for processes that terminate before successfully doing it themselves.
https://bugs.webkit.org/show_bug.cgi?id=143517.
Reviewed by Brady Eidson.
* UIProcess/WebIconDatabase.messages.in:
Move RetainIconForPageURL and ReleaseIconForPageURL messages to WebProcessProxy so they can be associated with the appropriate web process.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionDidClose):
Call releaseRemainingIconsForPageURLs() to balance retains/releases for this process.
(WebKit::WebProcessProxy::retainIconForPageURL):
Track retain counts for page URLs and call through to WebIconDatabase.
(WebKit::WebProcessProxy::releaseIconForPageURL):
Ditto.
(WebKit::WebProcessProxy::releaseRemainingIconsForPageURLs):
Call releaseIconForPageURL() once for each outstanding retain count, for each page URL.
* UIProcess/WebProcessProxy.h:
Declare methods for retainIconForPageURL(), releaseIconForPageURL(), and releaseRemainingIconsForPageURLs().
Declare hash map to track number of retains per page URL.
* UIProcess/WebProcessProxy.messages.in:
Moved RetainIconForPageURL and ReleaseIconForPageURL messages here from WebIconDatabase.
* WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
(WebKit::WebIconDatabaseProxy::retainIconForPageURL):
Modify the receiver of the message to be WebProcessProxy.
(WebKit::WebIconDatabaseProxy::releaseIconForPageURL):
Ditto.
2015-04-09 Chris Dumez <cdumez@apple.com>
[WK2] Regression(r182194): The NetworkProcess is calling the wrong memory pressure handler before suspending
https://bugs.webkit.org/show_bug.cgi?id=143575
<rdar://problem/20484338>
Reviewed by Andreas Kling.
After r182194, the NetworkProcess is calling the memory pressure
handler before getting suspended to free-up as much memory as possible
at this point.
However, we were calling the default memory pressure handling code
instead of the custom handler registered by the NetworkProcess. This
patch fixes the problem.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::processWillSuspend):
* NetworkProcess/NetworkProcess.h:
2015-04-09 Brady Eidson <beidson@apple.com>
REGRESSION (r182573): Action Menus no longer appear for WebKit2 views displaying an image
rdar://problem/20486551 and https://bugs.webkit.org/show_bug.cgi?id=143574
Reviewed by Brent Fulgham.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data): Clear up a name scoping issue.
2015-04-09 Chris Dumez <cdumez@apple.com>
[WK2][iOS] editorState() should not cause a synchronous layout
https://bugs.webkit.org/show_bug.cgi?id=142536
<rdar://problem/20041506>
Reviewed by Enrica Casucci.
platformEditorState() on iOS does a synchronous layout to compute some
of the EditorState members (e.g. caretRectAtStart / caretRectAtEnd).
This is bad for performance as this is called every time the selection
is changed (which happens for e.g. when you set the value of a focused
HTMLInputElement).
This patch updates the behavior on iOS to only send a partial EditorState
on selection change so that the UIProcess gets most of the information
(the ones that do not require style recalc or layout) ASAP. A full Editor
state is then sent after the asynchronous layout is done.
With this change, I see a 38% improvement on Speedometer (26.4 +/- 0.37
-> 36.5 +/- 0.54) on iPhone 6 Plus.
* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState): Deleted.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _didCommitLayerTree:]):
* UIProcess/ios/WKContentViewInteraction.mm:
(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(-[WKContentView webSelectionRects]):
(-[WKContentView _addShortcut:]):
(-[WKContentView selectedText]):
(-[WKContentView isReplaceAllowed]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView _transliterateChinese:]):
(-[WKContentView textStylingAtPosition:inDirection:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _showDictionary:]):
(-[WKContentView _characterBeforeCaretSelection]):
(-[WKContentView _characterInRelationToCaretSelection:]):
(-[WKContentView _selectionAtDocumentStart]):
(-[WKContentView selectedTextRange]):
(-[WKContentView hasContent]):
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::didChangeSelectionAndUpdateLayout):
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
(WebKit::WebPage::didChangeSelection):
(WebKit::WebPage::sendPostLayoutEditorStateIfNeeded):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformEditorState):
2015-04-09 Antti Koivisto <antti@apple.com>
Network Cache: Crash in WebCore::CachedResource::tryReplaceEncodedData
https://bugs.webkit.org/show_bug.cgi?id=143562
Reviewed by Anders Carlsson.
If another thread comes and truncates the file before we map it we end up with a map that crashes when accessed.
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::IOChannel):
When creating a new file unlink any existing file instead of using O_TRUNC.
2015-04-09 Csaba Osztrogonác <ossy@webkit.org>
[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
https://bugs.webkit.org/show_bug.cgi?id=142907
Unreviewed typo fix after r182595.
* PlatformGTK.cmake:
2015-04-09 Csaba Osztrogonác <ossy@webkit.org>
[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
https://bugs.webkit.org/show_bug.cgi?id=142907
Reviewed by Carlos Garcia Campos.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Scripts/generate-forwarding-headers.pl: Make it work with more path and platform arguments.
2015-04-08 Joseph Pecoraro <pecoraro@apple.com>
Exception in console and broken right click after attempting to show context menu in Inspector
https://bugs.webkit.org/show_bug.cgi?id=143556
Reviewed by Brady Eidson.
* Shared/mac/NativeContextMenuItem.mm:
(WebKit::NativeContextMenuItem::NativeContextMenuItem):
Add an ASSERT to immediately catch a menu item created with a nil native menu item.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
Gracefully handle a null share context menu item.
2015-04-08 Brent Fulgham <bfulgham@apple.com>
[Mac] Unreviewed test fix after r182584
https://bugs.webkit.org/show_bug.cgi?id=143452
Correct bit comparison to use the correct value for the Control-key
* Shared/mac/WebEventFactory.mm:
(WebKit::typeForEvent):
2015-04-08 Jaehun Lim <ljaehun.lim@samsung.com>
[EFL] Create PageUIClientEfl after sending CreateWebPage message
https://bugs.webkit.org/show_bug.cgi?id=143514
Reviewed by Gyuyoung Kim.
UIProcess sends some messages to WebPage before WebPage is created. It makes some error logs on debug build.
So this patch moves the initialization of m_pageUIClient after calling WKViewInitialize().
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
2015-04-08 Brent Fulgham <bfulgham@apple.com>
[Mac] WebKit is not honoring OS preferences for secondary click behaviors
https://bugs.webkit.org/show_bug.cgi?id=143452
<rdar://problem/20437483>
Reviewed by Tim Horton.
We cannot rely on the event's button number to decide behavior. The OS settings might have
mapped middle button to context menu, etc. Instead, we should ask the OS (via NSMenu) what
the proper button press behavior is.
* Shared/mac/WebEventFactory.mm:
(WebKit::mouseButtonForEvent): Ask NSMenu what kind of button press we have received.
2015-04-08 Brady Eidson <beidson@apple.com>
Expose the "Share" menu for links, images, and media.
<rdar://problem/20435340> and https://bugs.webkit.org/show_bug.cgi?id=143502
Reviewed by Tim Horton.
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
* Shared/WebHitTestResult.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::shareMenuItem):
* WebProcess/WebCoreSupport/WebContextMenuClient.h:
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::shareSelectedTextMenuItem): Deleted.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
2015-04-08 Anders Carlsson <andersca@apple.com>
Add encoding and decoding of ints to WKRemoteObjectCoder
https://bugs.webkit.org/show_bug.cgi?id=143538
Reviewed by Tim Horton.
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(-[WKRemoteObjectEncoder encodeInt:forKey:]):
(-[WKRemoteObjectDecoder decodeIntForKey:]):
2015-04-08 Anders Carlsson <andersca@apple.com>
Delete ApplicationCache static member functions
https://bugs.webkit.org/show_bug.cgi?id=143534
Reviewed by Tim Horton.
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
(WebKit::WebApplicationCacheManager::deleteAllEntries):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::clearApplicationCacheForOrigin):
(WebKit::InjectedBundle::appCacheUsageForOrigin):
2015-04-08 Enrica Casucci <enrica@apple.com>
32-bit build fix after r182554.
* UIProcess/API/mac/WKView.mm:
(-[WKView resignFirstResponder]):
2015-04-08 Beth Dakin <bdakin@apple.com>
Force events should not require preventDefault in order to fire
https://bugs.webkit.org/show_bug.cgi?id=143503
-and corresponding-
rdar://problem/20458916
Reviewed by Tim Horton.
We no longer need m_lastActionMenuHitTestPreventsDefault since we’ll always
dispatch the events to Element.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::inputDeviceForceDidChange):
(WebKit::WebPage::immediateActionDidCancel):
2015-04-08 Enrica Casucci <enrica@apple.com>
Calling makeFirstResponder on WKWebView doesn't work.
https://bugs.webkit.org/show_bug.cgi?id=143482
rdar://problem/20298166
Reviewed by Dan Bernstein.
Adding forwarding of the responder status to the WKView.
We also need to avoid doing any cleanup in resignFirstResponder
if we know we are about to regain responder status again.
Same goes for becomeFirstResponder.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView becomeFirstResponder]):
(-[WKWebView acceptsFirstResponder]):
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFristResponder]):
(-[WKView resignFirstResponder]):
2015-04-07 Tim Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setFixedLayoutSize:]):
2015-04-07 Tim Horton <timothy_horton@apple.com>
Expose and test fixedLayoutSize via modern WebKit SPI
https://bugs.webkit.org/show_bug.cgi?id=143500
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isFixedLayoutEnabled]):
(-[WKWebView _setFixedLayoutEnabled:]):
(-[WKWebView _fixedLayoutSize]):
(-[WKWebView _setFixedLayoutSize:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _isFixedLayoutEnabled]):
(-[WKView _setFixedLayoutEnabled:]):
(-[WKView _fixedLayoutSize]):
(-[WKView _setFixedLayoutSize:]):
Add API for adjusting the fixed layout size, and whether or not we use it.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Repair a mistake I made in r139822, where I brought odd TILED_BACKING_STORE-only
logic (which disables scrollbars if fixedLayoutSize is enabled) to the rest of the ports.
Put it back as TILED_BACKING_STORE-only.
Persist the fixedLayoutSize through view creation; we already persist the enabled state,
but not the size, which doesn't make any sense.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::fixedLayoutSize):
* WebProcess/WebPage/WebPage.h:
Add a fixedLayoutSize() getter.
2015-04-07 Brady Eidson <beidson@apple.com>
ContextMenuItem refactoring
https://bugs.webkit.org/show_bug.cgi?id=143485
Reviewed by Beth Dakin.
* Shared/mac/NativeContextMenuItem.mm:
(WebKit::NativeContextMenuItem::NativeContextMenuItem):
2015-04-07 Simon Fraser <simon.fraser@apple.com>
Add a new setting, AntialiasedFontDilationEnabled, exposed via WK2.
https://bugs.webkit.org/show_bug.cgi?id=143495
Reviewed by Tim Horton.
Exposed the antialiasedFontDilationEnabled setting via WK C SPI and Objective-C SPI.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAntialiasedFontDilationEnabled):
(WKPreferencesGetAntialiasedFontDilationEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _antialiasedFontDilationEnabled]):
(-[WKPreferences _setAntialiasedFontDilationEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2015-04-07 Beth Dakin <bdakin@apple.com>
Should only propagate pressure events with relevant phases
https://bugs.webkit.org/show_bug.cgi?id=143494
-and corresponding-
rdar://problem/20453738
Reviewed by Tim Horton.
We only care about the changed, began, and ended phases.
* UIProcess/API/mac/WKView.mm:
(-[WKView pressureChangeWithEvent:]):
2015-04-07 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; make calls to new SPI conditional on iOS version.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
2015-04-06 Anders Carlsson <andersca@apple.com>
Create the web inspector process pool lazily
https://bugs.webkit.org/show_bug.cgi?id=143456
rdar://problem/20146520
Reviewed by Mark Lam.
Add and implement WebInspectorProxy::isInspectorProcessPool instead of always creating the inspector process pool
when trying to determine if a given process pool is the inspector process pool.
This should speed up initialization somewhat and avoid creating a storage manager for example.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::inspectorProcessPool):
(WebKit::WebInspectorProxy::isInspectorProcessPool):
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):
2015-04-06 Brady Eidson <beidson@apple.com>
Combine ActionMenuHitTestResult with WebHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=143444
Reviewed by Beth Dakin.
* Shared/mac/ActionMenuHitTestResult.h: Removed.
* Shared/mac/ActionMenuHitTestResult.mm: Removed.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
(WebKit::WebHitTestResult::Data::platformEncode):
(WebKit::WebHitTestResult::Data::platformDecode):
* Shared/WebHitTestResult.h:
* Shared/mac/WebHitTestResult.mm: Added.
(WebKit::WebHitTestResult::Data::platformEncode):
(WebKit::WebHitTestResult::Data::platformDecode):
* UIProcess/API/mac/WKView.mm:
(-[WKView _didPerformActionMenuHitTest:forImmediateAction:contentPreventsDefault:userData:]):
(-[WKView _didPerformActionMenuHitTest:forImmediateAction:userData:]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didPerformActionMenuHitTest):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformActionMenuHitTest):
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willDestroyView:]):
(-[WKActionMenuController _clearActionMenuState]):
(-[WKActionMenuController didPerformActionMenuHitTest:userData:]):
(-[WKActionMenuController _hitTestResultDataImage]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _copyImage:]):
(-[WKActionMenuController _addImageToPhotos:]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
(-[WKActionMenuController _defaultMenuItemsForEditableTextWithSuggestions]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
(-[WKActionMenuController _webHitTestResult]):
(-[WKActionMenuController _defaultMenuItems]):
(-[WKActionMenuController _hitTestResultImage]): Deleted.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController didPerformActionMenuHitTest:contentPreventsDefault:userData:]):
(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WKImmediateActionController _webHitTestResult]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _updateImmediateActionItem]):
(-[WKImmediateActionController _menuItemForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForText]):
(-[WKImmediateActionController didPerformActionMenuHitTest:userData:]): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
2015-04-06 Jer Noble <jer.noble@apple.com>
Synchronize fullscreen animation between processes.
https://bugs.webkit.org/show_bug.cgi?id=143131
Reviewed by Simon Fraser.
Support synchronize resizing by animating within the UIProcess. Since setVideoLayerFrameFenced() is now only
ever called from within a 0-duration transaction, make that the official contract of the function and wrap
the WebProcess side of that method in its own 0-duration transaction.
* Platform/spi/ios/BackBoardServicesSPI.h: Added.
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Remember the initial rect.
(WebKit::WebVideoFullscreenManagerProxy::videoLayerFrame): Added; simple getter.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): Use a different synchronization fence primative.
Save the cached frame value.
(WebKit::WebVideoFullscreenManagerProxy::videoLayerGravity): Added; simple getter.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity): Save the cached gravity value.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): Wrap in a 0-length transaction.
2015-04-06 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Regression(r182323): ASSERTION FAILED: WebCore::SQLiteDatabaseTracker::hasTransactionInProgress() in NetworkCache::Statistics::initialize()
https://bugs.webkit.org/show_bug.cgi?id=143451
<rdar://problem/20437994>
Reviewed by Anders Carlsson.
Initialize WebProcess::m_webSQLiteDatabaseTracker and
NetworkProcess::m_webSQLiteDatabaseTracker in their respective class
constructors instead of doing it later in the initializeWebProcess() /
initializeNetworkProcess() methods.
If we do it later, it can happen that the tracker gets set after
a SQLiteTransactionInProgressAutoCounter initialization and before
the actual transaction. When this happens, the
SQLiteTransactionInProgressAutoCounter variable fails to increment the
transaction count. Then when the transaction is executed,
SQLiteDatabaseTracker::hasTransactionInProgress() can return false.
This would lead to possible assertions on start up on iOS.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):
* WebProcess/WebProcess.h:
2015-04-06 Beth Dakin <bdakin@apple.com>
https://trac.webkit.org/changeset/182338 introduced a build failure that I
attempted to fix with https://trac.webkit.org/changeset/182341 , but that disabled
the feature accidentally. This should do the right thing.
* UIProcess/API/mac/WKView.mm:
(-[WKView pressureChangeWithEvent:]):
2015-04-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r182296.
https://bugs.webkit.org/show_bug.cgi?id=143448
This will disturb network cache efficacy logging, we should
reland this later. (Requested by cdumez__ on #webkit).
Reverted changeset:
"[WK2][NetworkCache] Drop HTTP method from NetworkCache::Key"
https://bugs.webkit.org/show_bug.cgi?id=143348
http://trac.webkit.org/changeset/182296
2015-04-06 Žan Doberšek <zdobersek@igalia.com>
[WK2] API::Array::copy() should move the resulting Vector<> of copies into the Array::create() call
https://bugs.webkit.org/show_bug.cgi?id=143413
Reviewed by Darin Adler.
Move the Vector<> object containing the copied elements into the Array::create()
call, avoiding copying all the elements again.
While here, change the Vector<> parameters for Array::create() and the Array
constructor to rvalue references. This will ensure that the passed-in object
is moved into the Array::create() call if possible, or explicitly copied
otherwise. The constructor is moved into the header for inlining opportunities
and the unnecessary parameter in the create(Vector<>&&) method declaration
removed.
* Shared/API/APIArray.cpp:
(API::Array::create):
(API::Array::copy):
(API::Array::Array): Deleted.
* Shared/API/APIArray.h:
2015-04-06 Žan Doberšek <zdobersek@igalia.com>
UserScript, UserStyleSheet constructors should take in Vector<String> rvalues
https://bugs.webkit.org/show_bug.cgi?id=143411
Reviewed by Darin Adler.
Move the whitelist and blacklist Vector<String> objects into the
UserScript and UserStyleSheet constructors in ArgumentCoder<T>::decode
functions.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<UserStyleSheet>::decode):
(IPC::ArgumentCoder<UserScript>::decode):
2015-04-05 Darin Adler <darin@apple.com>
[Mac] Spins seen in WKSetApplicationInformationItem, so it should not be called on the main thread
https://bugs.webkit.org/show_bug.cgi?id=143423
rdar://problem/18773785
Reviewed by Alexey Proskuryakov.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::origin): Factored out this helper function from updateActivePages below, so
the function below is easier to read.
(WebKit::WebProcess::updateActivePages): Refactored to use the new origin function.
Use dispatch_async to call WKSetApplicationInformationItem without blocking.
2015-04-05 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Use constants of sqlite3 directly for status of SQL result in webdatabase
https://bugs.webkit.org/show_bug.cgi?id=143329
Reviewed by Darin Adler.
In webdatabase, it has used own constant variables as well as using sqlite3 constants directly.
If sqlite3 constants are changed in the library, we should modify many files as well. Besides
it can cause to use if~else statement which consumes more cpu cycles compared to switch~case.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::SQLiteIDBCursor::createSQLiteStatement):
(WebKit::SQLiteIDBCursor::resetAndRebindStatement):
(WebKit::SQLiteIDBCursor::bindArguments):
(WebKit::SQLiteIDBCursor::internalAdvanceOnce):
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::createOrMigrateRecordsTableIfNecessary):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::extractExistingMetadata):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::changeDatabaseVersion):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteIndex):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::generateKeyNumber):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::updateKeyGeneratorNumber):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::putRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::uncheckedPutIndexRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteRecord):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore):
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::executeSQLStatement):
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::queryWasEverRequested):
(WebKit::NetworkCache::Statistics::addHashesToDatabase):
(WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase):
* UIProcess/Storage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::importItems):
(WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems):
(WebKit::LocalStorageDatabase::databaseIsEmpty):
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases):
(WebKit::LocalStorageDatabaseTracker::importOriginIdentifiers):
(WebKit::LocalStorageDatabaseTracker::addDatabaseWithOriginIdentifier):
(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):
(WebKit::LocalStorageDatabaseTracker::pathForDatabaseWithOriginIdentifier):
* WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp:
(webkitSoupCookieJarSqliteLoad):
(webkitSoupCookieJarSqliteInsertCookie):
(webkitSoupCookieJarSqliteDeleteCookie):
2015-04-05 Simon Fraser <simon.fraser@apple.com>
Remove "go ahead and" from comments
https://bugs.webkit.org/show_bug.cgi?id=143421
Reviewed by Darin Adler, Benjamin Poulain.
Remove the phrase "go ahead and" from comments where it doesn't add
anything (which is almost all of them).
* Platform/unix/EnvironmentUtilities.cpp:
(WebKit::EnvironmentUtilities::stripValuesEndingWithString):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::didClose):
* UIProcess/API/mac/WKView.mm:
(-[WKView insertText:replacementRange:]):
(-[WKView _pluginFocusOrWindowFocusChanged:pluginComplexTextInputIdentifier:]):
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):
2015-04-05 Antti Koivisto <antti@apple.com>
Bloom filter should support longer hashes
https://bugs.webkit.org/show_bug.cgi?id=143419
Reviewed by Dan Bernstein.
Use the hash digest directly in the contents filter instead of going via shortHash.
* NetworkProcess/cache/NetworkCacheKey.h:
(WebKit::NetworkCache::Key::hash):
(WebKit::NetworkCache::Key::shortHash): Deleted.
(WebKit::NetworkCache::Key::toShortHash): Deleted.
No longer needed.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::addToContentsFilter):
(WebKit::NetworkCache::Storage::mayContain):
* NetworkProcess/cache/NetworkCacheStorage.h:
2015-04-05 Antti Koivisto <antti@apple.com>
Network cache Bloom filter is too big
https://bugs.webkit.org/show_bug.cgi?id=143400
Follow-up: Fix an ineffective assert.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::setMaximumSize): Average resource size is closer to 50KB than 50MB.
2015-04-05 Antti Koivisto <antti@apple.com>
Rename Cache::setMaximumSize to setCapacity
https://bugs.webkit.org/show_bug.cgi?id=143418
Reviewed by Dan Bernstein.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::setCapacity):
(WebKit::NetworkCache::Cache::setMaximumSize): Deleted.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::retrieve):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::update):
(WebKit::NetworkCache::Storage::setCapacity):
(WebKit::NetworkCache::Storage::shrinkIfNeeded):
(WebKit::NetworkCache::Storage::shrink):
(WebKit::NetworkCache::Storage::setMaximumSize): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformSetCacheModel):
2015-04-04 Antti Koivisto <antti@apple.com>
Network cache Bloom filter is too big
https://bugs.webkit.org/show_bug.cgi?id=143400
Reviewed by Chris Dumez.
It is currently 1MB.
This patch switches the cache from a counting filter (CountingBloomFilter) to a bit filter (BloomFilter).
It also reduces the filter size from 2^20 to 2^18 elements which is good for ~26000 cache entries while
still keeping false positive rate below 1%. The current cache capacity allows around 4000 entries
with typical web contents.
The new filter size is 32KB.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::synchronize):
Turn initialization function into general purpose synchronization function.
(WebKit::NetworkCache::Storage::addToContentsFilter):
Collect newly added hashes so we don't miss entries that were added during synchronization.
(WebKit::NetworkCache::Storage::mayContain):
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::retrieve):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):
(WebKit::NetworkCache::Storage::dispatchFullWriteOperation):
(WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation):
(WebKit::NetworkCache::Storage::setMaximumSize):
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::Storage::shrinkIfNeeded):
(WebKit::NetworkCache::Storage::shrink):
Non-counting Bloom filter does not support removals so this requires a new strategy.
Shrink code now simply deletes entries. The filter is updated by calling synchronize() at the end.
While we could synchronize the filter during traversal it is better to just have one function for that.
(WebKit::NetworkCache::Storage::initialize): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::mayContain):
(WebKit::NetworkCache::Storage::cacheMayContain): Deleted.
2015-04-04 Andy Estes <aestes@apple.com>
[Content Filtering] Blocked page is not always displayed when it should be
https://bugs.webkit.org/show_bug.cgi?id=143410
Reviewed by Andreas Kling.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didStartProvisionalLoad): Stopped clearing m_contentFilterUnblockHandler here.
(WebKit::WebFrameProxy::didHandleContentFilterUnblockNavigation): Started doing it here instead.
2015-04-04 Chris Dumez <cdumez@apple.com>
[WK2][Cocoa] Add a way to temporarily disable the WebKit Network Cache for testing
https://bugs.webkit.org/show_bug.cgi?id=143392
<rdar://problem/20315669>
Reviewed by Antti Koivisto.
Add a way to temporarily disable the WebKit Network Cache for testing.
It will be used temporarily for comparing page load times with and
without the WebKit network disk cache enabled.
This is in addition to the existing "WebKitNetworkCacheEnabled"
NSUserDefaults:
webkitNetworkCacheIsEnabled = [defaults boolForKey:WebKitNetworkCacheEnabledDefaultsKey]
&& ![defaults boolForKey:WebKitNetworkCacheTemporarilyDisabledForTestingKey];
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
2015-04-04 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r182215): Feedly crashes when closing article
https://bugs.webkit.org/show_bug.cgi?id=143405
rdar://problem/20382734, rdar://problem/20395497
Reviewed by Tim Horton.
Calling computeNonFastScrollableRegion() eagerly when scrollable areas come and go
is bad, because it can cause FrameView::layout() to get called in the middle of
RenderObject destruction, which leaves the render tree in a bad state.
Fix by calling computeNonFastScrollableRegion() lazily, just before scrolling tree commit.
AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged() now just sets
a flag to say that the non-fast region needs to be recomputed, and that schedules
a scrolling tree commit. When the commit happens, we recompute the region. If the
region didn't change, and no other changes are pending, there's no need to commit.
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::buildTransaction):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers): Outdent #ifdefs.
2015-04-03 Beth Dakin <bdakin@apple.com>
Attempted build fix.
* UIProcess/API/mac/WKView.mm:
2015-04-03 Simon Fraser <simon.fraser@apple.com>
Fix the firing of the ReachedSessionRestorationRenderTreeSizeThreshold milestone on iOS
https://bugs.webkit.org/show_bug.cgi?id=143394
Reviewed by Tim Horton.
A client reshuffle at some point broke the dispatch of the ReachedSessionRestorationRenderTreeSizeThreshold
milestone. Fix by using WebPageProxy::didLayout() to fire the milestone.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
2015-04-03 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=143387
Improvements to webkitmouseforce web API
-and corresponding-
rdar://problem/20281808
rdar://problem/20281853
Reviewed by Darin Adler.
This patch:
1. Dispatches webkitmouseforceup and webkitmouseforceclick at the right time.
2. Dispatches webkitmouseforcechanged from mousedown all the way through through
mouseup.
3. Uses force values from pressureChangeWithEvent instead of the immediate action
gesture recognizer.
Listen for this NSResponder method, and pass the relevant info to WebPageProxy to
dispatch to the web process.
* UIProcess/API/mac/WKView.mm:
(-[WKView pressureChangeWithEvent:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::inputDeviceForceDidChange):
(WebKit::WebPageProxy::immediateActionDidUpdate):
* UIProcess/WebPageProxy.h:
The web process still needs to know when the immediate action gesture recognizer
is updating, but it doesn’t need the force information. That will come from
pressureChangeWithEvent.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
Cache m_lastForceStage so that we can determine if we are
transitioning to a new stage.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
New message for InputDeviceForceDidChange and modified message for
ImmediateActionDidUpdate
* WebProcess/WebPage/WebPage.messages.in:
inputDeviceForceDidChange now takes care of dispatching mouseforcechanged,
mouseforcedown, mouseforceup, and mouseforceclick.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::inputDeviceForceDidChange):
We still need to keep track of the ImmediateActionStages in WebCore::EventHandler
so that we can have the right default behavior on mouseup based on whether or not
that action began and was completed. (In other words, to ensure we don’t navigate
to a link after force clicking it.)
(WebKit::WebPage::immediateActionDidUpdate):
(WebKit::WebPage::immediateActionDidComplete):
2015-04-03 Said Abou-Hallawa <sabouhallawa@apple.com>
InjectedBundleNodeHandle::renderedImage() needs to be exposed from the Cocoa WebAPI layer.
https://bugs.webkit.org/show_bug.cgi?id=143341.
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:]): Expose rendered
image injected bundle API from the Cocoa layer. A node in the page can be
rendered to an NSImage on MacOS and to a UIImage on iOS.
2015-04-03 Chris Dumez <cdumez@apple.com>
[WK2][iOS] We should prevent NetworkProcess suspension while it has pending SQL transactions
https://bugs.webkit.org/show_bug.cgi?id=143278
<rdar://problem/20180799>
Reviewed by Anders Carlsson.
Prevent NetworkProcess suspension while it has pending SQL transactions,
similarly to what we already did for WebProcesses. This patch moves the
WebSQLiteDatabaseTracker from WebProcess/ to Shared/ and make it usable
by the NetworkProcess class as well.
Whenever there are locked files to due SQL transactions, the
NetworkProcess will send an IPC message to the NetworkProcessProxy
which will hold a background process assertion until the NetworkProcess'
SQL transactions are complete. This way, it is no longer possible for
the NetworkProcess to get suspended while SQL transactions are running
and a database file is locked.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
* Shared/WebSQLiteDatabaseTracker.cpp: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp.
(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::m_childProcessType):
(WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction):
(WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction):
(WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated):
* Shared/WebSQLiteDatabaseTracker.h: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):
* WebProcess/WebProcess.h:
2015-04-03 Antti Koivisto <antti@apple.com>
Add non-counting Bloom filter implementation
https://bugs.webkit.org/show_bug.cgi?id=143366
Reviewed by Sam Weinig.
* NetworkProcess/cache/NetworkCacheStorage.h:
2015-04-03 Zan Dobersek <zdobersek@igalia.com>
Fix the EFL and GTK build after r182243
https://bugs.webkit.org/show_bug.cgi?id=143361
Reviewed by Csaba Osztrogonác.
* PlatformGTK.cmake: Add a custom command that copies the
InspectorBackendCommands.js file into the proper directory
under DerivedSources/WebInspectorUI/.
2015-04-03 Philippe Normand <pnormand@igalia.com>
Unreviewed, GTK build fix.
* UIProcess/API/gtk/WebKitContextMenuClient.cpp:
* UIProcess/gtk/WebContextMenuProxyGtk.cpp:
* UIProcess/gtk/WebContextMenuProxyGtk.h:
2015-04-02 Csaba Osztrogonác <ossy@webkit.org>
Typo fix.
* PlatformGTK.cmake:
2015-04-02 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r182303, stub NativeContextMenuItem implemetations added for EFL and GTK.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/efl/NativeContextMenuItemEfl.cpp: Added.
(WebKit::NativeContextMenuItem::NativeContextMenuItem):
* Shared/gtk/NativeContextMenuItemGtk.cpp: Added.
(WebKit::NativeContextMenuItem::NativeContextMenuItem):
2015-04-02 Timothy Horton <timothy_horton@apple.com>
De-PLATFORM(IOS)-ify LayerHostingContext::setFencePort
https://bugs.webkit.org/show_bug.cgi?id=143342
* Platform/mac/LayerHostingContext.h:
* Platform/mac/LayerHostingContext.mm:
Actually, not available on Mavericks. Fix the build.
2015-04-02 Brady Eidson <beidson@apple.com>
Unreviewed: Re-applied change after rollout.
Expose the "Share" menu for text selections on platforms where it's available.
rdar://problem/20034174 and https://bugs.webkit.org/show_bug.cgi?id=143318
* Shared/API/c/WKContextMenuItemTypes.h: Add a constant for the Share menu.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toImpl):
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
* Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::selectedText):
Add a "cross platform" menu item wrapper, right now only for NSMenuItem.
* Shared/NativeContextMenuItem.h:
(WebKit::NativeContextMenuItem::~NativeContextMenuItem):
(WebKit::NativeContextMenuItem::nsMenuItem):
* Shared/mac/NativeContextMenuItem.mm:
(WebKit::NativeContextMenuItem::NativeContextMenuItem):
Let WebContextMenuItem hold on to a NativeContextMenuItem to maintain full fidelity of the platform.
* Shared/WebContextMenuItem.cpp:
(WebKit::WebContextMenuItem::WebContextMenuItem):
* Shared/WebContextMenuItem.h:
(WebKit::WebContextMenuItem::create):
(WebKit::WebContextMenuItem::nativeContextMenuItem):
* UIProcess/API/APIContextMenuClient.h:
(API::ContextMenuClient::getContextMenuFromProposedMenu):
(API::ContextMenuClient::showContextMenu):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageContextMenuClient):
* UIProcess/WebContextMenuProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu): Translate the placeholder item from the web process into the
native Share menu before consulting the context menu client. Also create the API items here so the native NSMenuItem
can be attached to them.
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::nsMenuItem):
(WebKit::nsMenuItemVector):
(WebKit::WebContextMenuProxyMac::populate):
(WebKit::WebContextMenuProxyMac::showContextMenu):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebContextMenuClient.h:
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::shareSelectedTextMenuItem): In the web process, mark the Share menu's place in the
context menu with a placeholder item. It will be translated into the real Share menu in the UI process.
2015-04-02 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r182293.
https://bugs.webkit.org/show_bug.cgi?id=143355
Broke GTK and EFL builds. (Requested by bfulgham on #webkit).
Reverted changeset:
"Expose the "Share" menu for text selections on platforms
where it's available."
https://bugs.webkit.org/show_bug.cgi?id=143318
http://trac.webkit.org/changeset/182293
2015-04-02 Chris Dumez <cdumez@apple.com>
[WK2][NetworkCache] Drop HTTP method from NetworkCache::Key
https://bugs.webkit.org/show_bug.cgi?id=143348
Reviewed by Antti Koivisto.
Drop HTTP method from NetworkCache::Key as we only cache GET responses
for now. Even when we start caching HEAD responses, we likely will not
want the method to be part of the key because:
- A HEAD response can be used to update the headers of a previously cached response to GET
- A cached GET response may be used to satisfy subsequent HEAD requests
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeCacheKey):
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCache::Key::Key):
(WebKit::NetworkCache::Key::operator=):
(WebKit::NetworkCache::Key::computeHash):
(WebKit::NetworkCache::Key::operator==):
(WebKit::NetworkCache::Key::encode):
(WebKit::NetworkCache::Key::decode):
* NetworkProcess/cache/NetworkCacheKey.h:
(WebKit::NetworkCache::Key::method): Deleted.
2015-04-02 Jer Noble <jer.noble@apple.com>
[Mac][WK2] Fullscreen animation incorrect when initiated on non-primary monitor
https://bugs.webkit.org/show_bug.cgi?id=143237
Reviewed by Brent Fulgham.
The animation calculations have an implicit assumptions of a screen whose origin is 0,0. Account
for the screen origin by passing the window's screen's frame into the zoomAnimation() and maskAnimation()
methods.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:webView:]):
(zoomAnimation):
(maskAnimation):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
2015-04-02 Brady Eidson <beidson@apple.com>
Expose the "Share" menu for text selections on platforms where it's available.
rdar://problem/20034174 and https://bugs.webkit.org/show_bug.cgi?id=143318
Reviewed by Sam Weinig.
* Shared/API/c/WKContextMenuItemTypes.h: Add a constant for the Share menu.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toImpl):
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
* Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::selectedText):
Add a "cross platform" menu item wrapper, right now only for NSMenuItem.
* Shared/NativeContextMenuItem.h:
(WebKit::NativeContextMenuItem::~NativeContextMenuItem):
(WebKit::NativeContextMenuItem::nsMenuItem):
* Shared/mac/NativeContextMenuItem.mm:
(WebKit::NativeContextMenuItem::NativeContextMenuItem):
Let WebContextMenuItem hold on to a NativeContextMenuItem to maintain full fidelity of the platform.
* Shared/WebContextMenuItem.cpp:
(WebKit::WebContextMenuItem::WebContextMenuItem):
* Shared/WebContextMenuItem.h:
(WebKit::WebContextMenuItem::create):
(WebKit::WebContextMenuItem::nativeContextMenuItem):
* UIProcess/API/APIContextMenuClient.h:
(API::ContextMenuClient::getContextMenuFromProposedMenu):
(API::ContextMenuClient::showContextMenu):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageContextMenuClient):
* UIProcess/WebContextMenuProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu): Translate the placeholder item from the web process into the
native Share menu before consulting the context menu client. Also create the API items here so the native NSMenuItem
can be attached to them.
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::nsMenuItem):
(WebKit::nsMenuItemVector):
(WebKit::WebContextMenuProxyMac::populate):
(WebKit::WebContextMenuProxyMac::showContextMenu):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebContextMenuClient.h:
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::shareSelectedTextMenuItem): In the web process, mark the Share menu's place in the
context menu with a placeholder item. It will be translated into the real Share menu in the UI process.
2015-04-02 Timothy Horton <timothy_horton@apple.com>
De-PLATFORM(IOS)-ify LayerHostingContext::setFencePort
https://bugs.webkit.org/show_bug.cgi?id=143342
Reviewed by Myles C. Maxfield.
* Platform/mac/LayerHostingContext.h:
* Platform/mac/LayerHostingContext.mm:
(WebKit::LayerHostingContext::setFencePort):
There's nothing iOS specific about this.
2015-04-02 Oliver Hunt <oliver@apple.com>
Ensure that we always set network ATS context in the network process
https://bugs.webkit.org/show_bug.cgi?id=143343
Reviewed by Dan Bernstein.
If a custom cache location or size we were early returning before setting
the CFNetwork ATS context. This is clearly an error.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
2015-04-02 Alexey Proskuryakov <ap@apple.com>
Make checkURLReceivedFromWebProcess not rely on details of platform URL implementation.
https://bugs.webkit.org/show_bug.cgi?id=143222
rdar://problem/19978997
Reviewed by Sam Weinig.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
2015-04-02 Yusuke Suzuki <utatane.tea@gmail.com>
Clean up EnumerationMode to easily extend
https://bugs.webkit.org/show_bug.cgi?id=143276
Reviewed by Geoffrey Garen.
Use default EnumerationMode().
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::enumerate):
2015-04-02 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Update the WebContent process' sandbox profile for AWD
https://bugs.webkit.org/show_bug.cgi?id=143340
<rdar://problem/20375170>
Reviewed by Alexey Proskuryakov.
Update the WebContent process' sandbox profile for AWD.
* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2015-04-01 Antti Koivisto <antti@apple.com>
Use std::chrono types to represent time in response and cache classes
https://bugs.webkit.org/show_bug.cgi?id=143316
Reviewed by Andreas Kling.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::responseHasExpired):
(WebKit::NetworkCache::responseNeedsRevalidation):
(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::store):
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::Entry):
(WebKit::NetworkCache::Entry::asJSON):
* NetworkProcess/cache/NetworkCacheEntry.h:
(WebKit::NetworkCache::Entry::timeStamp):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecord):
Sanity check the timestamp on decode.
(WebKit::NetworkCache::encodeRecordMetaData):
(WebKit::NetworkCache::encodeRecordHeader):
(WebKit::NetworkCache::Storage::traverse):
* NetworkProcess/cache/NetworkCacheStorage.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::lastModifiedDateMS):
(WebKit::PluginView::Stream::didReceiveResponse):
(WebKit::PluginView::manualLoadDidReceiveResponse):
(WebKit::lastModifiedDate): Deleted.
2015-04-01 Chris Dumez <cdumez@apple.com>
[WK2][Cocoa] Add didFailProvisionalLoadWithErrorForFrame callback to WKWebProcessPlugInLoadDelegate
https://bugs.webkit.org/show_bug.cgi?id=143319
<rdar://problem/19463834>
Reviewed by Dan Bernstein.
Add didFailProvisionalLoadWithErrorForFrame callback to
WKWebProcessPlugInLoadDelegate so that the client side can track all
types page load completions:
- didFailProvisionalLoadWithErrorForFrame
- didFailLoadWithErrorForFrame
- didFinishLoadForFrame
Note that this event is already exposed on UIProcess side via the
WKPageLoaderClient.didFailLoadWithErrorForFrame callback.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(didFailProvisionalLoadWithErrorForFrame):
(setUpPageLoaderClient):
2015-04-01 Enrica Casucci <enrica@apple.com>
Injected bundle messages should be at the page level.
https://bugs.webkit.org/show_bug.cgi?id=143283
Reviewed by Alexey Proskuryakov.
All the messages between the injected bundle and the UI
process should be page level messages instead of context.
The author of this patch is Tim Horton, I just finished it.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageInjectedBundleClient):
* UIProcess/API/C/WKPage.h:
* UIProcess/API/C/WKPageInjectedBundleClient.h: Added.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _pageForTesting]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/WebPageInjectedBundleClient.cpp: Added.
(WebKit::WebPageInjectedBundleClient::didReceiveMessageFromInjectedBundle):
(WebKit::WebPageInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle):
* UIProcess/WebPageInjectedBundleClient.h: Added.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setInjectedBundleClient):
(WebKit::WebPageProxy::handleMessage):
(WebKit::WebPageProxy::handleSynchronousMessage):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::injectedBundleClient):
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::handleMessage):
* WebKit2.xcodeproj/project.pbxproj:
* CMakeLists.txt:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePagePostMessage):
(WKBundlePagePostSynchronousMessage):
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::postMessage):
(WebKit::WebPage::postSynchronousMessage):
* WebProcess/WebPage/WebPage.h:
2015-04-01 Alexey Proskuryakov <ap@apple.com>
[iOS] WebContent should have access to the entirety of its caches directory
https://bugs.webkit.org/show_bug.cgi?id=143312
rdar://problem/20314916
Reviewed by Oliver Hunt.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* Shared/Network/NetworkProcessCreationParameters.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::networkingCachesDirectory):
(WebKit::WebProcessPool::webContentCachesDirectory):
(WebKit::WebProcessPool::openGLCacheDirectory): Deleted.
(WebKit::WebProcessPool::networkingHSTSDatabasePath): Deleted.
(WebKit::WebProcessPool::webContentHSTSDatabasePath): Deleted.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):
* UIProcess/WebProcessPool.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2015-04-01 Timothy Horton <timothy_horton@apple.com>
Smart magnification gesture sometimes shoots to the middle of the page
https://bugs.webkit.org/show_bug.cgi?id=143296
<rdar://problem/18209280>
Reviewed by Dean Jackson.
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
Constrain the target rect to the viewport, and if it had overflowed the viewport,
scroll halfway towards the gesture origin.
2015-03-31 Simon Fraser <simon.fraser@apple.com>
Remove scrolling tree dependency on wheel event handler counts, and use fast scrolling even when there are wheel handlers
https://bugs.webkit.org/show_bug.cgi?id=143288
rdar://problem/16049624
Reviewed by Beth Dakin.
Remove the wheel event counting that Document does, and passes into the scrolling tree.
The ScrollingTree now just uses the non-fast scrollable region to determine when to
fast scroll on pages with wheel event handlers.
If a handler includes position:fixed renderers, we just cover the whole document
with the slow-scrolling region currently. This could be improved.
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
(WebKit::RemoteScrollingTreeTextStream::dump):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::wheelEventHandlersChanged):
(WebKit::WebChromeClient::numWheelEventHandlersChanged): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::wheelEventHandlersChanged):
(WebKit::WebPage::recomputeShortCircuitHorizontalWheelEventsState):
(WebKit::WebPage::numWheelEventHandlersChanged): Deleted.
* WebProcess/WebPage/WebPage.h:
2015-03-31 Dan Bernstein <mitz@apple.com>
<rdar://problem/20365675> [iOS] Include Add to Reading List link action only where supported
https://bugs.webkit.org/show_bug.cgi?id=143289
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/_WKElementAction.h: Excluded _WKElementActionTypeAddToReadingList from
the _WKElementActionType enum when Reading List is not supported.
* UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction elementActionWithType:customTitle:]): Made Add to Reading List code
conditional on HAVE(SAFARI_SERVICES_FRAMEWORK).
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant showImageSheet]): Ditto.
(-[WKActionSheetAssistant showLinkSheet]): Ditto.
* config.h: Defined HAVE_SAFARI_SERVICES_FRAMEWORK.
2015-03-31 Timothy Horton <timothy_horton@apple.com>
TextIndicator for <span> inside an <a> only highlights the <span>, should highlight the whole <a>
https://bugs.webkit.org/show_bug.cgi?id=143287
<rdar://problem/20318342>
Reviewed by Beth Dakin.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Instead of just highlighting the hit element, highlight the whole
element that the link URL comes from.
2015-03-31 Timothy Horton <timothy_horton@apple.com>
WKView should stop using endGestureWithEvent
https://bugs.webkit.org/show_bug.cgi?id=143285
<rdar://problem/20357007>
Reviewed by Simon Fraser.
* UIProcess/API/mac/WKView.mm:
(-[WKView magnifyWithEvent:]):
(-[WKView endGestureWithEvent:]): Deleted.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::endMagnificationGesture):
(WebKit::ViewGestureController::endActiveGesture): Deleted.
While there is no visible symptom, it is recommended that we check
the phase of normal magnification events instead of using the
special gesture end events.
2015-03-31 Timothy Horton <timothy_horton@apple.com>
Swipes occur in the wrong direction in RTL
https://bugs.webkit.org/show_bug.cgi?id=143257
<rdar://problem/20300862>
Reviewed by Simon Fraser.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):
When choosing which edge to attach our gesture recognizers to,
flip them in RTL.
(-[WKSwipeTransitionController directionForTransition:]):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::canSwipeInDirection):
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::trackSwipeGesture):
(WebKit::ViewGestureController::determineLayerAdjacentToSnapshotForParent):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::handleSwipeGesture):
Adjust SwipeDirection to be in logical back-forward list direction
instead of physical edge direction.
2015-03-31 Myles C. Maxfield <mmaxfield@apple.com>
Move ExpansionBehaviorFlags and TextDirection to their own file
https://bugs.webkit.org/show_bug.cgi?id=143273
Reviewed by Simon Fraser.
This is a mechanical change. It just moves code around.
This is getting ready for https://bugs.webkit.org/show_bug.cgi?id=142608
* Shared/WebPopupItem.h:
* UIProcess/API/C/efl/WKAPICastEfl.h:
* UIProcess/API/efl/EwkView.h:
* UIProcess/WebPopupMenuProxy.h:
* UIProcess/efl/WebUIPopupMenuClient.h:
2015-03-31 Yusuke Suzuki <utatane.tea@gmail.com>
Clean up Identifier factories to clarify the meaning of StringImpl*
https://bugs.webkit.org/show_bug.cgi?id=143146
Reviewed by Filip Pizlo.
Just change to Identifier::fromString.
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::getOwnPropertyNames):
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::identifierFromIdentifierRep):
2015-03-31 Timothy Horton <timothy_horton@apple.com>
WebKit briefly shows wrong webpage after swiping back (gigaom.com, or any site on a slow network)
https://bugs.webkit.org/show_bug.cgi?id=143256
<rdar://problem/19458648>
Reviewed by Dan Bernstein.
Instead of allowing a flash of the previous page when the swipe snapshot
timeouts fire (removing the snapshot before the new page is loaded), show
the snapshotted background color.
This fixes the problem on iOS, where UI-side compositing makes it easy to fix,
but not yet on OS X.
* UIProcess/API/Cocoa/WKWebView.mm:
(baseScrollViewBackgroundColor):
(scrollViewBackgroundColor):
If the ViewGestureController returns a valid background color, use that
instead of the page's background color.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
Expose _updateScrollViewBackground.
* UIProcess/PageClient.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didChangeBackgroundColor):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didChangeBackgroundColor):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeBackgroundColor):
* UIProcess/WebPageProxy.h:
Add and plumb didChangeBackgroundColor, which calls
_updateScrollViewBackground on iOS.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::endSwipeGesture):
Hide the content of the drawing area until the next commit. This way,
even if the snapshot is removed (say, because a timeout fired), we won't
ever show the old page content (but we will show background color).
Store the background color associated with the current snapshot.
Let WKWebView know that it needs to recompute the background color.
(WebKit::ViewGestureController::removeSwipeSnapshot):
Clear the background color so that the next time we commit, WKWebView
will get an invalid color from ViewGestureController and fall back
to the page's extended background color instead.
* UIProcess/mac/ViewGestureController.h:
(WebKit::ViewGestureController::backgroundColorForCurrentSnapshot):
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
Keep backgroundColorForCurrentSnapshot up to date on Mac too, even
though we don't use it yet.
2015-03-31 Timothy Horton <timothy_horton@apple.com>
[iOS] Rotating PDF in Safari scrolls to the wrong position
https://bugs.webkit.org/show_bug.cgi?id=143259
<rdar://problem/19872693>
Reviewed by Dan Bernstein.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_setMinimumSize:]):
Maintan the relative top/left within the rescaled document.
2015-03-31 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Extend ProcessThrottler use to the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=143249
<rdar://problem/20231539>
Reviewed by Gavin Barraclough.
Extend ProcessThrottler use to the NetworkProcess instead of only the
WebProcesses. This is needed so that the NetworkProcess gets notified
before suspension. We now use this notification to free-up memory
before suspending by calling the critical memory pressure handler, as
we already do for WebProcesses (rdar://problem/20231539). In the
future, this infrastructure will be used to delay suspension until the
pending SQL transactions are done as well (rdar://problem/20180799).
Previously, the NetworkProcessProxy would hold a foreground assertion
on behalf of the NetworkProcess but would never release that assertion.
In this patch, we change this so that WebProcessProxies hold assertions
on behalf of the NetworkProcess, and release those assertions before
suspending. As a result, the NetworkProcess gets suspended when all
WebProcesses are suspended.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::processWillSuspend):
(WebKit::NetworkProcess::cancelProcessWillSuspend):
(WebKit::NetworkProcess::processDidResume):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::NetworkProcessProxy):
(WebKit::NetworkProcessProxy::didFinishLaunching):
(WebKit::NetworkProcessProxy::sendProcessWillSuspend):
(WebKit::NetworkProcessProxy::sendCancelProcessWillSuspend):
(WebKit::NetworkProcessProxy::didCancelProcessSuspension):
(WebKit::NetworkProcessProxy::sendProcessDidResume):
(WebKit::NetworkProcessProxy::processReadyToSuspend):
* UIProcess/Network/NetworkProcessProxy.h:
(WebKit::NetworkProcessProxy::throttler):
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::ProcessThrottler):
(WebKit::ProcessThrottler::didConnectToProcess):
(WebKit::ProcessThrottler::didConnnectToProcess): Deleted.
* UIProcess/ProcessThrottler.h:
* UIProcess/ProcessThrottlerClient.h: Added.
(WebKit::ProcessThrottlerClient::~ProcessThrottlerClient):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::initializeNetworkProcessActivityToken):
(WebKit::WebProcessProxy::sendProcessDidResume):
(WebKit::WebProcessProxy::processReadyToSuspend):
* UIProcess/WebProcessProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
2015-03-31 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed, revert accidental change by r182138.
* Scripts/generate-forwarding-headers.pl:
(createForwardingHeadersForFramework):
2015-03-31 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build with REDIRECTED_XCOMPOSITE_WINDOW disabled in X11 platform.
Also fix some unused parameter warnings when
REDIRECTED_XCOMPOSITE_WINDOW is disabled.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewRenderAcceleratedCompositingResults):
(resizeWebKitWebViewBaseFromAllocation):
2015-03-31 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] DnD icon/widget has odd background
https://bugs.webkit.org/show_bug.cgi?id=143217
Reviewed by Martin Robinson.
Use gtk_drag_set_icon_surface() to set the drag icon image,
instead of DragIcon class.
* UIProcess/API/gtk/WebKitWebView.cpp:
* UIProcess/gtk/DragAndDropHandler.cpp:
(WebKit::DragAndDropHandler::startDrag):
* UIProcess/gtk/DragAndDropHandler.h:
2015-03-30 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r182172.
https://bugs.webkit.org/show_bug.cgi?id=143250
Since this class is an API object, we don't know for sure when
it will be destroyed. (Requested by kling on #webkit).
Reverted changeset:
"WebBackForwardList doesn't need to manually clear the
snapshot of an entry when removing it."
https://bugs.webkit.org/show_bug.cgi?id=143231
http://trac.webkit.org/changeset/182172
2015-03-30 Andreas Kling <akling@apple.com>
WebBackForwardList doesn't need to manually clear the snapshot of an entry when removing it.
<https://webkit.org/b/143231>
Reviewed by Tim Horton.
Now that we don't keep WebBackForwardListItem objects alive forever, it's not necessary
to clear the snapshot when removing them from the WebBackForwardList, since the entire
object will be deleted shortly after that anyway.
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::didRemoveItem):
2015-03-30 Enrica Casucci <enrica@apple.com>
[iOS] WebContent crashing at WebCore: WebCore::Range::collectSelectionRects.
https://bugs.webkit.org/show_bug.cgi?id=143234
<rdar://problem/18571345>
Reviewed by Tim Horton.
This is a speculative fix that adds a null check before referencing the range.
In both places where the check has been added the range returned by the call
that should create it could be null.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState):
2015-03-30 Sam Weinig <sam@webkit.org>
[Content Extensions] Flesh out the UserContentExtensionStore
https://bugs.webkit.org/show_bug.cgi?id=143123
Reviewed by Benjamin Poulain.
* Shared/WebCompiledContentExtension.cpp:
(WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData):
* Shared/WebCompiledContentExtensionData.cpp:
(WebKit::WebCompiledContentExtensionData::encode):
(WebKit::WebCompiledContentExtensionData::decode):
* Shared/WebCompiledContentExtensionData.h:
(WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData):
Switch the order in memory of actions and bytecode (and switch the order of the
variables as well, to keep it clear). This will become necessary when streaming
the data to disk, as actions are created before the bytecode and we would have to keep them
in memory until the bytecode was finished compiling if they didn't come before in the file.
* UIProcess/API/APIUserContentExtensionStore.h:
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::defaultStore):
Add accessor for the processes default shared store.
(API::constructedPath):
Helper for constructing the path to a file in the store based on identifier.
(API::encodeContentExtensionMetaData):
(API::decodeContentExtensionMetaData):
Helpers for encoding/decoding the file metadata (version, bytecode size, actions size).
(API::openAndMapContentExtension):
Helper to open and map a filed back content extension.
(API::writeDataToFile):
Helper to write a Data object to a file.
(API::compiledToFile):
Helper to run the content extension compiler and write it to disk. It first
writes it to a temporary file and then does an atomic rename operation to put
the file in the final location. Doing this means that if the process crashes while
the compile is taking place, the partially written file won't end up in the cache,
but rather, will be cleaned up by the OS.
(API::UserContentExtensionStore::lookupContentExtension):
API entry point to lookup an extension that has been compiled to disk. On a background queue,
it attempts to open and map the extension (based on the identifier passed in) and return it
to the caller via the callback function passed in.
(API::UserContentExtensionStore::compileContentExtension):
API entry point to compile an extension and write it to store. On a background queue, it
compiles the file to disk and if successful, returns the memory mapped data via the callback
function passed in.
(API::UserContentExtensionStore::removeContentExtension):
API entry point to remove an extension from the store. On a background queue, it
unlinks the extension (based on the identifier passed in) and tells the caller it completed
the action vial the callback function passed in.
(API::UserContentExtensionStore::synchronousRemoveAllContentExtensions):
Helper for testing which synchronously unlinks all the files in the store.
(API::userContentExtensionStoreErrorCategory):
std::error_code adaptor for some generic errors that can happen in the store. We will want
to flesh these out further.
* UIProcess/API/Cocoa/APIUserContentExtensionStoreCocoa.mm: Added.
(API::UserContentExtensionStore::defaultStorePath):
Helper to get the platform specific path for the store.
* UIProcess/API/C/WKUserContentExtensionStoreRef.cpp:
(WKUserContentExtensionStoreGetTypeID):
Add ENABLE(CONTENT_EXTENSIONS) guards.
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
(-[_WKUserContentExtensionStore dealloc]):
(+[_WKUserContentExtensionStore defaultStore]):
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore _removeAllContentExtensions]):
(-[_WKUserContentExtensionStore init]): Deleted.
* UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h:
* UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h: Added.
SPI wrappers for the store.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
2015-03-30 Antti Koivisto <antti@apple.com>
Don't cache resources that are very unlikely to be reused
https://bugs.webkit.org/show_bug.cgi?id=143226
Reviewed by Chris Dumez.
Follow-up to cover Cache-control: no-cache case which also has zero cache lifetime.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeStoreDecision):
2015-03-30 Antti Koivisto <antti@apple.com>
Include cache entry worth to json dump
https://bugs.webkit.org/show_bug.cgi?id=143202
Follow-up fix.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::computeRecordWorth):
This accidentally gave the error case worth 1 rather than 0 as it should be.
2015-03-30 Antti Koivisto <antti@apple.com>
Don't cache resources that are very unlikely to be reused
https://bugs.webkit.org/show_bug.cgi?id=143226
<rdar://problem/20347160>
Reviewed by Geoff Garen.
We are writing lots of resources to the cache that are never used again.
In browse-around-randomly test this reduced number of cache entries created by ~20% and bytes written by ~5%.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeUseDecision):
(WebKit::NetworkCache::makeRetrieveDecision):
Rename for clarity.
(WebKit::NetworkCache::makeStoreDecision):
Store only if the resource has non-zero expiration or has validation headers.
Very High priority resources (main resources) keep the existing policy to minimize impact
on back navigation and tab restore.
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::canUse): Deleted.
(WebKit::NetworkCache::canRetrieve): Deleted.
(WebKit::NetworkCache::canStore): Deleted.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::storeDecisionToDiagnosticKey):
2015-03-30 Tim Horton <timothy_horton@apple.com>
Swipe snapshot removed too early (jumps around) on arstechnica and NYT
https://bugs.webkit.org/show_bug.cgi?id=143199
<rdar://problem/18420467>
Reviewed by Dan Bernstein.
Make ViewGestureControllerIOS's snapshot removal timing behave more like the Mac version.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
Let ViewGestureController know when the page has finished state restoration.
(-[WKWebView _didFinishLoadForMainFrame]):
(-[WKWebView _didSameDocumentNavigationForMainFrame:]):
Forward these to ViewGestureController.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didFinishLoadForMainFrame):
Forward didFinishLoadForMainFrame to WKWebView.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::endSwipeGesture):
Split the swipe snapshot removal state into a bunch of bools.
(WebKit::ViewGestureController::willCommitPostSwipeTransitionLayerTree):
(WebKit::ViewGestureController::setRenderTreeSize):
(WebKit::ViewGestureController::removeSwipeSnapshotIfReady):
(WebKit::ViewGestureController::removeSwipeSnapshot):
Unify the snapshot removal logic into one function; removeSwipeSnapshotIfReady
completely owns the decision. For now, we're waiting for everything, but
we can do better in the future (using firstVisuallyNonEmptyLayout like Mac used to).
(WebKit::ViewGestureController::didRestoreScrollPosition):
(WebKit::ViewGestureController::didFinishLoadForMainFrame):
(WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame):
(WebKit::ViewGestureController::activeLoadMonitoringTimerFired):
Add more conditions for swipe snapshot removal. We'll now wait for
didFinishLoadForMainFrame (or didSameDocumentNavigationForMainFrame),
for active loads to finish, and for the scroll position to be restored.
This brings the iOS implementation in line with the slightly better Mac
implementation, and also sets the stage for deduplication of all of this code.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::ViewGestureController):
2015-03-30 Chris Dumez <cdumez@apple.com>
[WK2][NetworkCache] Add support for "Cache-Control: max-stale" request header
https://bugs.webkit.org/show_bug.cgi?id=143159
<rdar://problem/20333296>
Reviewed by Antti Koivisto.
Add support for "Cache-Control: max-stale" request header:
https://tools.ietf.org/html/rfc7234#section-5.2.1.2
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::responseHasExpired):
(WebKit::NetworkCache::requestRequiresRevalidation):
(WebKit::NetworkCache::canUse):
2015-03-30 Csaba Osztrogonác <ossy@webkit.org>
[EFL][GTK] WebKit2's generate-forwarding-headers.pl should fail if clashing headers found
https://bugs.webkit.org/show_bug.cgi?id=142909
Reviewed by Philippe Normand.
* Scripts/generate-forwarding-headers.pl:
(createForwardingHeadersForFramework):
2015-03-29 Antti Koivisto <antti@apple.com>
Include cache entry worth to json dump
https://bugs.webkit.org/show_bug.cgi?id=143202
Reviewed by Darin Adler.
This is useful for analyzing cache performance.
Also include the body size, total item count and average worth.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
(WebKit::NetworkCache::Cache::dumpContentsToFile):
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::asJSON):
* NetworkProcess/cache/NetworkCacheEntry.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::traverse):
Add flags for specificying what sort of information is needed.
(WebKit::NetworkCache::computeRecordWorth):
Factor to a function.
(WebKit::NetworkCache::deletionProbability):
* NetworkProcess/cache/NetworkCacheStorage.h:
2015-03-29 Simon Fraser <simon.fraser@apple.com>
Fix iOS scrollperf crash after a web process crash
https://bugs.webkit.org/show_bug.cgi?id=143110
Reviewed by Dean Jackson.
When we destroy the drawing area after a web process crash, we also need to destroy
the scrollingPerformanceData which has a reference to the drawing area.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
2015-03-29 Simon Fraser <simon.fraser@apple.com>
Convert arguments to ScrollingCoordinator functions to references
https://bugs.webkit.org/show_bug.cgi?id=143198
Reviewed by Darin Adler.
Convert all the FrameView* and ScrollableArea* arguments to ScrollingCoordinator functions to
references, and use references in a few other places.
* WebProcess/Scrolling/RemoteScrollingCoordinator.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::coordinatesScrollingForFrameView):
2015-03-29 Enrica Casucci <enrica@apple.com>
[iOS WK2] WKContentView should implement _selectionClipRect
https://bugs.webkit.org/show_bug.cgi?id=143143
rdar://problem/20330075
Reviewed by Benjamin Poulain.
UIKit checks if the text delegate responds to this selector
to retrieve the clipping rectangle for the editable element
where the selection is being create.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _selectionClipRect]):
2015-03-29 Antti Koivisto <antti@apple.com>
Use st_mtime instead of st_atime to track file access time
https://bugs.webkit.org/show_bug.cgi?id=143200
Reviewed by Darin Adler.
On OS X atime updates automatically on read so calling Storage::traverse() would always ends up updating access times
for all cache entries to the current time. This would make entry worth computation produce unexpected results.
We update mtime manually on successful cache retrieve only so switching to it fixes the problem.
* NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
(WebKit::NetworkCache::fileTimes):
(WebKit::NetworkCache::updateFileModificationTimeIfNeeded):
(WebKit::NetworkCache::updateFileAccessTimeIfNeeded): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::updateFileModificationTime):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::deletionProbability):
(WebKit::NetworkCache::Storage::updateFileAccessTime): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
2015-03-27 Gwang Yoon Hwang <yoon@igalia.com>
[TexMap] Seperate BitmapTexture related classes implementations from TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=142386
Reviewed by Žan Doberšek.
TextureMapper and TextureMapperGL are bloated and tightly coupled with
BitmapTexture. We should move these classes to seperated file of their own.
Also, this patch removes friend relationship from TextureMapperGL and its
subsidiary classes.
The main purpose of this refactoring is to expose BitmapTexturePool to
renderers of platformlayers like Video and Canvas. By doing this, each
renderer can acquire textures from the global texture pool to paint
their contents directly.
* Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp: Include BitmapTextureGL.h explicitly
2015-03-27 Anders Carlsson <andersca@apple.com>
Use a typedef for the WKPluginLoadClientPolicy enum
https://bugs.webkit.org/show_bug.cgi?id=143161
Reviewed by Tim Horton.
* UIProcess/API/C/WKPluginLoadPolicy.h:
2015-03-27 Chris Dumez <cdumez@apple.com>
[WK2][NetworkCache] Use WTF::WorkQueue abstraction inside NetworkCacheStatistics
https://bugs.webkit.org/show_bug.cgi?id=143154
Reviewed by Antti Koivisto.
Use WTF::WorkQueue abstraction inside NetworkCacheStatistics, like we
already do in NetworkCacheStorage.
* NetworkProcess/cache/NetworkCacheStatistics.cpp: Renamed from Source/WebKit2/NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm.
(WebKit::NetworkCache::executeSQLCommand):
(WebKit::NetworkCache::executeSQLStatement):
(WebKit::NetworkCache::Statistics::open):
(WebKit::NetworkCache::Statistics::Statistics):
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache):
(WebKit::NetworkCache::Statistics::shrinkIfNeeded):
(WebKit::NetworkCache::Statistics::recordRetrievalRequest):
(WebKit::NetworkCache::Statistics::recordNotCachingResponse):
(WebKit::NetworkCache::retrieveDecisionToDiagnosticKey):
(WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCache::storeDecisionToDiagnosticKey):
(WebKit::NetworkCache::Statistics::recordRetrievalFailure):
(WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey):
(WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry):
(WebKit::NetworkCache::Statistics::markAsRequested):
(WebKit::NetworkCache::Statistics::writeTimerFired):
(WebKit::NetworkCache::Statistics::queryWasEverRequested):
(WebKit::NetworkCache::Statistics::clear):
(WebKit::NetworkCache::Statistics::addHashesToDatabase):
(WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase):
* NetworkProcess/cache/NetworkCacheStatistics.h:
(WebKit::NetworkCache::Statistics::serialBackgroundIOQueue):
* WebKit2.xcodeproj/project.pbxproj:
2015-03-27 Ryosuke Niwa <rniwa@webkit.org>
Safari clears selection when its window gets activated via mouse down
https://bugs.webkit.org/show_bug.cgi?id=143157
Reviewed by Anders Carlsson.
The bug was caused by PlatformMouseEvent created in WebKit2 not having its event number
even though we were correctly calling setActivationEventNumber in WebPage::acceptsFirstMouse.
Fixed the bug by storing [NSEvent eventNumber] in WebMouseEvent on Mac in WebKit2 as done in WebKit1.
* Shared/WebEvent.h:
(WebKit::WebMouseEvent::eventNumber):
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
* Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode):
(WebKit::WebMouseEvent::decode):
* Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebMouseEvent):
2015-03-27 Anders Carlsson <andersca@apple.com>
Only do the Connection::setShouldCloseConnectionOnMachExceptions() hack where necessary
https://bugs.webkit.org/show_bug.cgi?id=143141
rdar://problem/19471284
Reviewed by Andreas Kling.
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::platformInvalidate):
(IPC::Connection::platformInitialize):
(IPC::Connection::open):
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
2015-03-27 Tim Horton <timothy_horton@apple.com>
Implement iOS WebKit2 PDF Find-in-Page
https://bugs.webkit.org/show_bug.cgi?id=143065
<rdar://problem/16793370>
Reviewed by Dan Bernstein.
* Platform/spi/ios/CorePDFSPI.h:
Add some SPI.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _countStringMatches:options:maxCount:]):
(-[WKWebView _findString:options:maxCount:]):
(-[WKWebView _hideFindUI]):
If we have a custom content view, forward find-in-page methods to it.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/_WKFindOptions.h:
Move _WKFindOptions into its own file.
* UIProcess/Cocoa/WKWebViewContentProvider.h:
Add find-related methods to the WKWebViewContentProvider protocol.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_initWithFrame:webView:]):
(-[WKPDFView dealloc]):
Maintain a dispatch queue for searching the PDF.
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):
Fix a type.
(-[WKPDFView _ensureViewForPage:]):
Split the code to create/parent a page view out from _revalidateViews,
so that the find code can create/parent the targetted UIPDFPageView
in order to install the find highlight in it, but before it is scrolled into view.
(-[WKPDFView _revalidateViews]):
Use the stored page index instead of counting again.
Don't unparent page views that have find-in-page highlights in them, because
we won't know enough to recreate them later.
(-[WKPDFView _computePageAndDocumentFrames]):
Put the page index in PDFPageInfo, for reference elsewhere.
(-[WKPDFView _stringCompareOptionsFromWKFindOptions:]):
(-[WKPDFView _computeMatchesForString:options:maxCount:completionHandler:]):
Asynchronously (and on our serial queue) search the PDF for the given string.
We'll cache the most recent results to avoid searching more than once,
cancel existing searches when another begins (since it's a serial queue,
this ensures we'll only have one search active at a time).
(-[WKPDFView web_countStringMatches:options:maxCount:]):
Count the number of matches for the given string, and inform the FindClient
of the result.
(-[WKPDFView _didFindMatch:]):
When we find a match, create a view for it, highlight the match, and
zoom so that it's in-view.
(-[WKPDFView web_findString:options:maxCount:]):
Incrementally search the document for the given string. We do an incremental
search even if we have all of the results so that we can anchor the search
in the right place if the new string is a prefix of the old string, etc.
Wrap around appropriately when searching past the beginning or end of the
document. If we have all of the results (there were less than maxCount results),
look through the cached matches for the incrementally-found result and
report its index to the client.
(-[WKPDFView web_hideFindUI]):
Dismiss the selection and clear some state so we start the next search afresh.
* WebKit2.xcodeproj/project.pbxproj:
2015-03-27 Andreas Kling <akling@apple.com>
WebProcessProxy should not retain WebBackForwardListItems forever.
<https://webkit.org/b/143152>
<rdar://problem/19925709>
Reviewed by Anders Carlsson.
Have WebProcessProxy actually forget about a WebBackForwardListItem after it's removed from
the WebBackForwardList.
This ensures that we don't accumulate too many of these objects, which can get quite large
due to the session state encoded in them.
We already have graceful handling of the case where an incoming IPC message references
a removed back/forward list item.
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::didRemoveItem):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::backForwardRemovedItem):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::removeBackForwardItem):
* UIProcess/WebProcessProxy.h:
2015-03-27 Simon Fraser <simon.fraser@apple.com>
Use the correct timebase to log scrollperf blank pixel counts on iOS
https://bugs.webkit.org/show_bug.cgi?id=143149
Reviewed by Tim Horton.
MobileSafari and WebKit need to collect scrollperf data using the same timebase;
MobileSafari can't call WTF::monotonicallyIncreasingTime(), so use CFAbsoluteTimeGetCurrent()
everywhere.
* UIProcess/Cocoa/RemoteLayerTreeScrollingPerformanceData.mm:
(WebKit::RemoteLayerTreeScrollingPerformanceData::appendBlankPixelCount):
2015-03-27 Chris Dumez <cdumez@apple.com>
[WK2][NetworkCache] Rename requestNeedsRevalidation() to requestRequiresRevalidation()
https://bugs.webkit.org/show_bug.cgi?id=143137
Reviewed by Antti Koivisto.
Rename requestNeedsRevalidation() to requestRequiresRevalidation() as I
think it is more accurate. It is not the request that needs revalidating.
The requests just requires us to revalidate the response.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::requestRequiresRevalidation):
(WebKit::NetworkCache::canUse):
(WebKit::NetworkCache::requestNeedsRevalidation): Deleted.
2015-03-27 Oliver Hunt <oliver@apple.com>
Forward additional CFNetwork ATS information to child processes
https://bugs.webkit.org/show_bug.cgi?id=143136
Reviewed by Anders Carlsson.
Add additional process creation parameter information, and pass it
to the child processes that actually use CFNetwork.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* Shared/Network/NetworkProcessCreationParameters.h:
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode):
(WebKit::PluginProcessCreationParameters::decode):
* Shared/Plugins/PluginProcessCreationParameters.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::platformInitializePluginProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2015-03-27 Chris Dumez <cdumez@apple.com>
[WK2][NetworkCache] We only cache responses with status codes that are cacheable by default
https://bugs.webkit.org/show_bug.cgi?id=143125
<rdar://problem/20321172>
Reviewed by Antti Koivisto.
We Previously only cached responses with status codes that are cacheable
by default [1]. However, RFC 7234 [2] allows us to cache responses with
other status codes, as long as they have explicit headers allowing
caching:
- 'Expires' header field
- 'max-age' response directive
This patch updates our caching policy accordingly to improve efficiency.
[1] http://tools.ietf.org/html/rfc7231#page-48
[2] http://tools.ietf.org/html/rfc7234#section-4.3.2
Test: http/tests/cache/disk-cache/disk-cache-307-status-code.html
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::canStore):
2015-03-26 Antti Koivisto <antti@apple.com>
Respect cache-control directives in request
https://bugs.webkit.org/show_bug.cgi?id=143121
rdar://problem/19714040
Reviewed by Chris Dumez.
Better support for https://tools.ietf.org/html/rfc7234#section-5.2.1
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::canUse):
Consider requests with Cache-control: no-cache and max-age=0 expired.
(WebKit::NetworkCache::canStore):
Don't store requests with Cache-control: no-store.
(WebKit::NetworkCache::Cache::store):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::NetworkCache::storeDecisionToDiagnosticKey):
2015-03-25 Jon Honeycutt <jhoneycutt@apple.com>
iOS file upload panel menu items need icons
<https://bugs.webkit.org/show_bug.cgi?id=143042>
<rdar://problem/20178678>
Reviewed by Andy Estes.
* Platform/spi/ios/UIKitSPI.h:
Declare new SPI methods _UIImageGetWebKitTakePhotoOrVideoIcon and
_UIImageGetWebKitPhotoLibraryIcon().
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(photoLibraryIcon):
(cameraIcon):
If UIKit SPI exists, use it. Otherwise, return nil.
(-[WKFileUploadPanel _showDocumentPickerMenu]):
Use icons.
2015-03-26 Enrica Casucci <enrica@apple.com>
OS X build fix after r182037.
Unreviewed.
* UIProcess/API/mac/WKView.mm:
(-[WKView _addFontPanelObserver]):
(-[WKView removeWindowObservers]):
(-[WKView observeValueForKeyPath:ofObject:change:context:]):
2015-03-26 Enrica Casucci <enrica@apple.com>
iOS build fix after r182037.
Unreviewed.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setEditable:]):
2015-03-26 Enrica Casucci <enrica@apple.com>
REGRESSION(r1807689): Slower startup time for WKWebView.
https://bugs.webkit.org/show_bug.cgi?id=143115
rdar://problem/20233711
Reviewed by Anders Carlsson.
In http://trac.webkit.org/changeset/180768 we added an observer to
track visibility of the NSFontPanel to ensure we could fetch the font
information for the current selection when the panel first becomes visible.
It turns out that adding the observer requires the shared font panel
object to be created.
That is apparently a very expensive operation that is regressing
the initialization time for the WKWebView.
We should initialize the NSFontPanel lazily, only when we make the entire
view editable.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setEditable:]):
* UIProcess/API/mac/WKView.mm:
(-[WKView addWindowObserversForWindow:]):
(-[WKView _addFontPanelObserver]):
(-[WKView removeWindowObservers]):
(-[WKView observeValueForKeyPath:ofObject:change:context:]):
* UIProcess/API/mac/WKViewInternal.h:
2015-03-26 Alex Christensen <achristensen@webkit.org>
Progress towards CMake on Mac.
https://bugs.webkit.org/show_bug.cgi?id=143112
Reviewed by Chris Dumez.
* CMakeLists.txt:
* PlatformMac.cmake:
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
2015-03-26 Chris Dumez <cdumez@apple.com>
[WK2][Cocoa] Add private API to override the network disk cache size
https://bugs.webkit.org/show_bug.cgi?id=143113
<rdar://problem/20315669>
Reviewed by Antti Koivisto.
Add private API to let the client override the network disk cache size.
By default, the network disk cache is automatically determined based on
the CacheModel and the available disk space. However, for testing
purposes, it can be used for the client-side to be able to override
the disk cache size.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::setMaximumSize):
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformSetCacheModel):
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* Shared/Network/NetworkProcessCreationParameters.h:
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration diskCacheSizeOverride]):
(-[_WKProcessPoolConfiguration setDiskCacheSizeOverride:]):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::ensureNetworkProcess):
* UIProcess/WebProcessPool.h:
2015-03-26 Andreas Kling <akling@apple.com>
[Darwin] Boost the web process QoS level while handling a synchronous IPC message.
<https://webkit.org/b/142988>
<rdar://problem/20264346>
Reviewed by Antti Koivisto and Anders Carlsson.
Add a mechanism for IPC::Connection to boost the main thread for the duration
of processing a synchronous message.
This fixes an issue where the UI process would block on a synchronous request
to the web process that was being carried out at a lower QoS level.
* Platform/IPC/Connection.cpp:
(IPC::Connection::Connection): Save the main thread's pthread_t while we have
a chance to retreive it.
(IPC::Connection::processIncomingMessage): Optionally boost the main thread when
processing an incoming message with the IsSyncMessage flag set.
* Platform/IPC/Connection.h:
(IPC::Connection::setShouldBoostMainThreadOnSyncMessage): Added. When this mode is
enabled, Connection will give a temporary QoS override to the main thread when
receiving a synchronous message. Ownership of the override is handed to the
MessageDecoder, which resets the main thread QoS in its destructor.
* Platform/IPC/MessageDecoder.cpp:
(IPC::MessageDecoder::~MessageDecoder): Remove any QoS override owned by this message.
* Platform/IPC/MessageDecoder.h:
(IPC::MessageDecoder::setQOSClassOverride): Added. Takes ownership of a QoS override
to make sure it stays in effect until this message has been dispatched.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection): Set up main thread QoS boosting for the
web process's connection to the UI process.
2015-03-26 Ryosuke Niwa <rniwa@webkit.org>
Cursor doesn't change back to pointer when leaving Mail
https://bugs.webkit.org/show_bug.cgi?id=132038
Reviewed by Anders Carlsson.
Fixed the bug by adding a cursor rect and making the primary tracking area update the cursor so that
AppKit will reset the cursor as it leaves the WebView.
We use nil cursor here since we manually update the cursor by calling [NSCursor set].
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:processPool:configuration:webView:]):
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
2015-03-26 Michael Catanzaro <mcatanzaro@igalia.com>
[Linux] SeccompFilters: improve the port-agnostic whitelist
https://bugs.webkit.org/show_bug.cgi?id=140064
Reviewed by Žan Doberšek.
Allow the web process to access several files and directories that it
was previously prohibited from accessing. This makes the web process
much less likely to break.
* Shared/linux/SeccompFilters/SyscallPolicy.cpp:
(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):
2015-03-26 Antti Koivisto <antti@apple.com>
Remove unneeded isConditionalRequest check from NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=143096
Reviewed by Anders Carlsson.
This check is leftover from implementation that allowed disk cache to validate conditional
request itself. The case can't happen as NetworkCache canRetrieve test does not allow
conditional requests in the first place.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
(WebKit::isConditionalRequest): Deleted.
2015-03-26 Antti Koivisto <antti@apple.com>
Rename Storage::Entry to Storage::Record
https://bugs.webkit.org/show_bug.cgi?id=143101
Reviewed by Chris Dumez.
Lets have just one type called Entry in the cache code.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::update):
(WebKit::NetworkCache::Cache::traverse):
(WebKit::NetworkCache::Cache::dumpContentsToFile):
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::Entry):
(WebKit::NetworkCache::Entry::encodeAsStorageRecord):
(WebKit::NetworkCache::Entry::decodeStorageRecord):
(WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
(WebKit::NetworkCache::Entry::buffer):
(WebKit::NetworkCache::Entry::shareableResourceHandle):
(WebKit::NetworkCache::Entry::encode): Deleted.
(WebKit::NetworkCache::Entry::decode): Deleted.
(WebKit::NetworkCache::Entry::initializeBufferFromStorageEntry): Deleted.
* NetworkProcess/cache/NetworkCacheEntry.h:
(WebKit::NetworkCache::Entry::sourceStorageRecord):
(WebKit::NetworkCache::Entry::sourceStorageEntry): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::RecordMetaData::RecordMetaData):
(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecordHeader):
(WebKit::NetworkCache::decodeRecord):
(WebKit::NetworkCache::encodeRecordMetaData):
(WebKit::NetworkCache::encodeRecordHeader):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::retrieveFromMemory):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::update):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):
(WebKit::NetworkCache::Storage::dispatchFullWriteOperation):
(WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation):
(WebKit::NetworkCache::EntryMetaData::EntryMetaData): Deleted.
(WebKit::NetworkCache::decodeEntryMetaData): Deleted.
(WebKit::NetworkCache::decodeEntryHeader): Deleted.
(WebKit::NetworkCache::decodeEntry): Deleted.
(WebKit::NetworkCache::encodeEntryMetaData): Deleted.
(WebKit::NetworkCache::encodeEntryHeader): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
2015-03-26 Chris Dumez <cdumez@apple.com>
[WK2] Let the compiler generate the NetworkCache::Key move constructor
https://bugs.webkit.org/show_bug.cgi?id=143079
Reviewed by Antti Koivisto.
Let the compiler generate the NetworkCache::Key move constructor. The
generated one will do exactly the same thing as the one we had except
that it will move the m_hash member as well. I don't see any reason why
we weren't moving this member before (it is an std::array<uint8_t, 16>).
Also have the compiler generate a move assignment operator for
consistency. Although it is not currently useful, it could be at some
point.
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCache::Key::Key): Deleted.
* NetworkProcess/cache/NetworkCacheKey.h:
2015-03-26 Chris Dumez <cdumez@apple.com>
[WK2][NetworkCache] Compute if a cached response has expired only when actually needed
https://bugs.webkit.org/show_bug.cgi?id=143070
Reviewed by Antti Koivisto.
Compute if a cached response has expired only when actually needed:
- This is not a history navigation
and
- It does not have "Cache-Control: no-cache" header
Previously, we would always determine if the response has expired and
we often end up not using this information.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::responseHasExpired):
(WebKit::NetworkCache::canUse):
2015-03-26 Zan Dobersek <zdobersek@igalia.com>
Avoid the Vector<> copy in WebTouchEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=143043
Reviewed by Carlos Garcia Campos.
Have the WebTouchEvent accept a Vector<> rvalue.
The relevant code is updated so the Vector<> object is moved
through the call chain and finally into the WebTouchEvent constructor.
* Shared/NativeWebTouchEvent.h:
* Shared/WebEvent.h:
* Shared/WebTouchEvent.cpp:
(WebKit::WebTouchEvent::WebTouchEvent):
* Shared/efl/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebTouchEvent):
* Shared/gtk/NativeWebTouchEventGtk.cpp:
(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
* Shared/gtk/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebTouchEvent):
* Shared/gtk/WebEventFactory.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseTouchEvent):
2015-03-25 Chris Dumez <cdumez@apple.com>
[WK2] WebFrameLoaderClient::dispatchDecidePolicyForResponse() should always call the FramePolicyFunction
https://bugs.webkit.org/show_bug.cgi?id=143036
<rdar://problem/20252438>
<rdar://problem/13811738>
Reviewed by Alexey Proskuryakov.
WebFrameLoaderClient::dispatchDecidePolicyForResponse() should always
call the FramePolicyFunction. Previously, it would fail to do in 2
cases:
- m_frame->page() returns null
or
- webPage->sendSync() returns false
If the FramePolicyFunction is not called, we will fail to clear the
callback in the PolicyChecker and
DocumentLoader::continueAfterContentPolicy() will not be called.
DocumentLoader::continueAfterContentPolicy() is in charge of resetting
m_waitingForContentPolicy flag to false. This could therefore explain
the following assertion being hit in DocumentLoader::detachFromFrame()
(see <rdar://problem/20252438>):
RELEASE_ASSERT(!m_waitingForContentPolicy)
Also, as the PolicyChecker callback is not cleared, it could make it
possible for DocumentLoader::continueAfterContentPolicy() to be called
*after* the load is finished, when later canceling the PolicyCallback:
FrameLoader::stopAllLoaders()
-> PolicyChecker::stopCheck()
-> PolicyCallback::cancel()
-> DocumentLoader::continueAfterContentPolicy(PolicyIgnore)
Calling continueAfterContentPolicy(PolicyIgnore) after the load is
finished would be bad and could explain some of the crashes we've seen
in DocumentLoader::continueAfterContentPolicy() ->
DocumentLoader:: stopLoadingForPolicyChange() (see
<rdar://problem/13811738>).
This patch also applies the same fix to
dispatchDecidePolicyForNewWindowAction() and
dispatchDecidePolicyForNavigationAction() as they use the same pattern.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
2015-03-25 Tim Horton <timothy_horton@apple.com>
Add a preference to prevent "user-scalable=no" from having any effect
https://bugs.webkit.org/show_bug.cgi?id=143032
Reviewed by Sam Weinig.
* Shared/WebPreferencesDefinitions.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Add a preference and push it to the ViewportConfiguration.
2015-03-25 Beth Dakin <bdakin@apple.com>
REGRESSION (r181660): Force click url preview doesn't have a TextIndicator in Mail
https://bugs.webkit.org/show_bug.cgi?id=143064
-and corresponding-
rdar://problem/20251440
Reviewed by Tim Horton.
The TextIndicator was getting set to nil by the call to
_dismissContentRelativeChildWindows in mouseDown. That line of code was added by
http://trac.webkit.org/changeset/177242 to work around a bug in another component
that has now been resolved, so it no longer appears to be necessary.
* UIProcess/API/mac/WKView.mm:
(-[WKView mouseDown:]):
2015-03-25 Anders Carlsson <andersca@apple.com>
Add network and application cache directories to WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=143063
Reviewed by Sam Weinig.
Create a WebKit directory under ~/Library/Caches/<Bundle ID> for non-sandboxed applications,
and ~/Library/Caches for sandboxed applications. Create NetworkCache and OfflineWebApplicationCache
subdirectories. These directories will be used with the modern WebKit API.
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::defaultDataStoreConfiguration):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
* UIProcess/WebsiteData/WebsiteDataStore.h:
2015-03-25 Sam Weinig <sam@webkit.org>
Address additional review feedback from https://bugs.webkit.org/show_bug.cgi?id=143059.
* Shared/WebCompiledContentExtension.cpp:
(WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData):
* UIProcess/API/C/WKUserContentFilterRef.cpp:
(WKUserContentFilterCreate):
* UIProcess/API/Cocoa/_WKUserContentFilter.mm:
(-[_WKUserContentFilter initWithName:serializedRules:]):
2015-03-25 Sam Weinig <sam@webkit.org>
[Content Extensions] Convert content extension compiling to return error codes and write its output using a client
https://bugs.webkit.org/show_bug.cgi?id=143059
Reviewed by Alex Christensen.
* Shared/WebCompiledContentExtension.cpp:
* Shared/WebCompiledContentExtension.h:
(WebKit::LegacyContentExtensionCompilationClient::LegacyContentExtensionCompilationClient):
(WebKit::LegacyContentExtensionCompilationClient::writeBytecode):
(WebKit::LegacyContentExtensionCompilationClient::writeActions):
Add subclass of ContentExtensionCompilationClient for use with the non-file backed content
extensions.
* UIProcess/API/C/WKUserContentFilterRef.cpp:
(WKUserContentFilterCreate):
* UIProcess/API/Cocoa/_WKUserContentFilter.mm:
(-[_WKUserContentFilter initWithName:serializedRules:]):
Update to use the new interface of compileRuleList().
2015-03-25 Ryosuke Niwa <rniwa@webkit.org>
Web Inspector: Switching tabs to window with inspector open prohibits typing into console
https://bugs.webkit.org/show_bug.cgi?id=126800
Reviewed by Anders Carlsson.
This is a regression from r85356 and r83814. These two patches made WKWebView clear its selection
when WKView resigns the first responder without ever restoring it even if WKView later becomes
the first responder again. This is problematic when a text field or a editing host element had been
focused and selected prior to the resignation since the editing code uses the selection to determine
the editability of the element.
Fixed the bug by restoring selection in [WKView becomeFirstResponder] if the selection is empty.
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFirstResponder]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::restoreSelectionInFocusedEditableElement):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::restoreSelectionInFocusedEditableElement):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2015-03-25 Beth Dakin <bdakin@apple.com>
REGRESSION (r181660): Safari navigates to link after a starting and canceling a
force preview
https://bugs.webkit.org/show_bug.cgi?id=143057
-and corresponding-
rdar://problem/20251436
Reviewed by Tim Horton.
Always call _page->immediateActionDidUpdate() so that the EventHandler’s
ImmediateActionStage is appropriately updated.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
Update the EventHandler’s ImmediateActionStage.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::immediateActionDidUpdate):
2015-03-25 Antti Koivisto <antti@apple.com>
Separate entry decoding from validation
https://bugs.webkit.org/show_bug.cgi?id=143052
Reviewed by Chris Dumez.
Make NetworkCache::Cache a class and move it to a file of its own.
Move the encoding/decoding code there.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::clearDiskCacheEntries):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::sendReplyToSynchronousRequest):
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::sendBufferMaybeAborting):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::validateCacheEntry):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::collectVaryingRequestHeaders):
(WebKit::NetworkCache::canUse):
Focused function for deciding if we can use a cache entry and if it needs validation.
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::update):
(WebKit::NetworkCache::Cache::traverse):
(WebKit::NetworkCache::encodeStorageEntry): Deleted.
(WebKit::NetworkCache::decodeStorageEntry): Deleted.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheEntry.cpp: Added.
(WebKit::NetworkCache::Entry::Entry):
(WebKit::NetworkCache::Entry::encode):
(WebKit::NetworkCache::Entry::decode):
(WebKit::NetworkCache::Entry::initializeBufferFromStorageEntry):
(WebKit::NetworkCache::Entry::buffer):
(WebKit::NetworkCache::Entry::shareableResourceHandle):
(WebKit::NetworkCache::Entry::needsValidation):
(WebKit::NetworkCache::Entry::setNeedsValidation):
* NetworkProcess/cache/NetworkCacheEntry.h: Added.
(WebKit::NetworkCache::Entry::key):
(WebKit::NetworkCache::Entry::timeStamp):
(WebKit::NetworkCache::Entry::response):
(WebKit::NetworkCache::Entry::varyingRequestHeaders):
(WebKit::NetworkCache::Entry::sourceStorageEntry):
* NetworkProcess/cache/NetworkCacheStatistics.h:
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey):
(WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry):
* WebKit2.xcodeproj/project.pbxproj:
2015-03-25 David Hyatt <hyatt@apple.com>
Add a pref to enable the new block-inside-inline model
https://bugs.webkit.org/show_bug.cgi?id=143050
Reviewed by Sam Weinig.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetNewBlockInsideInlineModelEnabled):
(WKPreferencesGetNewBlockInsideInlineModelEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2015-03-25 Zan Dobersek <zdobersek@igalia.com>
[WK2] WebUserMediaClient::pageDestroyed() virtual method should be marked as override
https://bugs.webkit.org/show_bug.cgi?id=143046
Reviewed by Carlos Garcia Campos.
* WebProcess/WebCoreSupport/WebUserMediaClient.h: Mark the WebUserMediaClient::pageDestroyed()
method, inherited from the WebCore::UserMediaClient, as an override.
2015-03-25 Zan Dobersek <zdobersek@igalia.com>
[GTK][WK2] WebPageProxy::failedToShowPopupMenu() virtual method should be marked as override
https://bugs.webkit.org/show_bug.cgi?id=143045
Reviewed by Carlos Garcia Campos.
* UIProcess/WebPageProxy.h: Mark the failedToShowPopupMenu(), inherited from
the WebPopupMenuProxy::Client class, as overridden.
2015-03-25 Zan Dobersek <zdobersek@igalia.com>
[WK2] Clean up DrawingAreaImpl vtable overrides
https://bugs.webkit.org/show_bug.cgi?id=143044
Reviewed by Carlos Garcia Campos.
Declare virtual methods of the DrawingAreaImpl class as overridden where necessary.
* WebProcess/WebPage/DrawingAreaImpl.h:
(WebKit::DrawingAreaImpl::layerTreeStateIsFrozen): Deleted.
(WebKit::DrawingAreaImpl::layerTreeHost): Deleted.
2015-03-24 Ryosuke Niwa <rniwa@webkit.org>
Inspector doesn't get focused when opened in dock mode
https://bugs.webkit.org/show_bug.cgi?id=143030
Reviewed by Anders Carlsson.
The bug was caused by platformBringToFront and platformAttach calling makeFirstResponder on WKWebView,
which aren't intended to become the first responder. Fixed the bug by calling makeFirstResponder on the WKView
subview of the WKWebView, which is intended to be used as the first responder on behalf of the web view.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformBringToFront):
(WebKit::WebInspectorProxy::platformAttach):
2015-03-24 Chris Dumez <cdumez@apple.com>
[WK2] Responses with 302 HTTP Status Code should not be cached
https://bugs.webkit.org/show_bug.cgi?id=143028
<rdar://problem/19714040>
Reviewed by Antti Koivisto.
Responses with 302 HTTP Status Code should not be cached as per
RFC 7231:
http://tools.ietf.org/html/rfc7231#section-6.1
This patch updates our disk cache policy accordingly.
Test: http/tests/cache/disk-cache/disk-cache-302-status-code.html
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::canStore):
2015-03-24 Anders Carlsson <andersca@apple.com>
Fix crash in WebKit::RemoteObjectRegistry::sendInvocation
https://bugs.webkit.org/show_bug.cgi?id=143027
rdar://problem/20208674
Reviewed by Sam Weinig.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController dealloc]):
Make sure to invalidate the _WKRemoteObjectRegistry like we do in the UI process.
2015-03-24 Chris Dumez <cdumez@apple.com>
[WK2] Responses with 204 HTTP Status Code should be cacheable by default
https://bugs.webkit.org/show_bug.cgi?id=143020
<rdar://problem/20281529>
Reviewed by Antti Koivisto.
Make responses with 204 HTTP Status Code cacheable by default, as
per RFC 7231:
http://tools.ietf.org/html/rfc7231#section-6.3.5
Test: http/tests/cache/disk-cache/disk-cache-204-status-code.html
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::canStore):
2015-03-24 Enrica Casucci <enrica@apple.com>
[iOS] Remove unused keyboard code in WKSelectPopover class.
https://bugs.webkit.org/show_bug.cgi?id=143021
Reviewed by Joseph Pecoraro.
WKSelectPopover created an instance of UIKeyboard that was
initialized in initWithView but never used. Removing the
obsolete code.
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectPopover initWithView:hasGroups:]):
2015-03-24 Dan Bernstein <mitz@apple.com>
WebKit2 part of <rdar://problem/20282863> Transforms are flattened in snapshots of on-screen WKWebViews
https://bugs.webkit.org/show_bug.cgi?id=143023
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): If the view is in a
window, use CARenderServerRenderLayerWithTransform to synchronously capture a snapshot of
its layer tree into an IOSurfcae, then call the completion handler with an image created
from the IOSurface.
2015-03-24 Beth Dakin <bdakin@apple.com>
Add events related to force click gesture
https://bugs.webkit.org/show_bug.cgi?id=142836
-and corresponding-
rdar://problem/20210239
Reviewed by Dean Jackson.
ActionMenuHitTestResult has a new bool indicating whether to not the HitTestResult
will prevent default.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Send immediateActionDidUpdate and the normalized force over the the WebProcess.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::immediateActionDidUpdate):
* UIProcess/WebPageProxy.h:
We need a dummy animation controller when web content is overriding the default
behavior.
* UIProcess/mac/WKImmediateActionController.mm:
Send along the update information.
(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
Use the dummy animation controller if default has been prevented.
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _updateImmediateActionItem]):
Keep track of whether m_lastActionMenuHitTes prevented the default immediate
action behavior.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Call dispatchMouseForceMayBegin() at hit test time.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Call dispatchMouseForceChanged() if appropriate.
(WebKit::WebPage::immediateActionDidUpdate):
Call dispatchMouseForceCancelled() if appropriate.
(WebKit::WebPage::immediateActionDidCancel):
Call dispatchMouseForceDown() if appropriate.
(WebKit::WebPage::immediateActionDidComplete):
2015-03-24 Anders Carlsson <andersca@apple.com>
Fix designated initializer violations
https://bugs.webkit.org/show_bug.cgi?id=143016
rdar://problem/20268858
Reviewed by Dan Bernstein.
Move -[WKProcessPool _initWithConfiguration:] to a class extension so we can make it the designated initializer.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _initWithConfiguration:]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
2015-03-24 Chris Dumez <cdumez@apple.com>
[WK2] Responses with 404 HTTP Status Code should be cacheable by default
https://bugs.webkit.org/show_bug.cgi?id=143014
<rdar://problem/20280310>
Reviewed by Antti Koivisto.
Make responses with 404 HTTP Status Code cacheable by default, as
per RFC 7231:
http://tools.ietf.org/html/rfc7231#section-6.5.4
Test: http/tests/cache/disk-cache/disk-cache-404-status-code.html
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::canStore):
2015-03-24 Chris Dumez <cdumez@apple.com>
[WK2] Remove NetworkCache FIXME comment about caching responses to OPTIONS requests
https://bugs.webkit.org/show_bug.cgi?id=143009
Reviewed by Andreas Kling.
Remove NetworkCache FIXME comment about caching responses to OPTIONS
method as RFC 7234 says "Responses to the OPTIONS method are not
cacheable" [1].
[1] http://tools.ietf.org/html/rfc7231#page-31
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::canRetrieve):
2015-03-24 Chris Dumez <cdumez@apple.com>
[WK2] NetworkCache retrievals fail for entries with no body
https://bugs.webkit.org/show_bug.cgi?id=142979
<rdar://problem/20264100>
Reviewed by Antti Koivisto.
NetworkCache retrievals were failing for entries with no body because
decodeEntry() doesn't correctly handle this case. In particular, the
following check fails:
"metaData.bodyOffset + metaData.bodySize == fileData.size()".
This is because bodyOffset is pageSize-aligned.
As a result, the following resource on apple.com is stored in the cache
but we fail to reuse it and reload it from the network every time:
http://images.apple.com/home/styles/promos.css
This patch updates decodeEntry() to create a null Data object for the
body if bodySize is 0.
* NetworkProcess/cache/NetworkCacheDataCocoa.mm:
(WebKit::NetworkCache::Data::data):
Do not attempt to initialize m_data if m_dispatchData is null as the
call to dispatch_data_create_map() would then crash. We now return
null in this case. This is needed as decodeStorageEntry() in
NetworkCache.cpp constructs a SharedBuffer from
storageEntry.body.data() and the body may be null.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::decodeEntry):
2015-03-24 Chris Dumez <cdumez@apple.com>
[WK2] The WebKit network cache does not cache responses with "Content-Disposition: attachment" header
https://bugs.webkit.org/show_bug.cgi?id=142989
<rdar://problem/20265992>
Reviewed by Antti Koivisto.
Update our WebKit network cache policy to cache responses with
"Content-Disposition: attachment" header. There is no reason we cannot
cache these and our memory cache already does.
This was causing a decent amount of cache misses in the wild. I have
noticed for example that when loading disney.com, we fail to cache the
following resources because of this policy:
http://pagead2.googlesyndication.com/pagead/osd.js
http://pagead2.googlesyndication.com/pagead/show_companion_ad.js
Those resources have Cache-Control headers that indicate they are meant
to be cacheable.
Test: http/tests/cache/disk-cache-validation-attachment.html
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::canStore):
2015-03-23 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed, another attempt to fix 32-bit build after r181881.
* UIProcess/WebInspectorProxy.h:
2015-03-23 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed, attempt to fix 32-bit build after r181881.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
2015-03-19 Timothy Hatcher <timothy@apple.com>
Web Inspector: Support attaching to another view other than the WKView
https://bugs.webkit.org/show_bug.cgi?id=142892
Reviewed by Tim Horton.
* UIProcess/API/C/WKInspector.cpp:
(WKInspectorAttach): Drive by fix so it used the last attachment side.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _inspectorAttachmentView]): Added.
(-[WKView _setInspectorAttachmentView:]): Added.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::attachAvailabilityChanged):
Use platformCanAttach as a final check incase there is a different
attachment view that the platform knows about.
* UIProcess/WebInspectorProxy.h:
(WebKit::WebInspectorProxy::attachmentSide): Added.
(WebKit::WebInspectorProxy::platformCanAttach): Added.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::attachmentViewDidChange): Added.
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformCanAttach):
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
Use the _inspectorAttachmentView and change how the frame change notification
is observed and follow the attachment view as it changes.
2015-03-23 Tim Horton <timothy_horton@apple.com>
Images shared to photos via action menu are padded with zeroes at the end
https://bugs.webkit.org/show_bug.cgi?id=142985
Reviewed by Anders Carlsson.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Send the size of the image separately from the SharedMemory.
The SharedMemory's size can be rounded up, so we need to keep the original
size around in order to write the data to disk.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _hitTestResultImage]):
(-[WKActionMenuController _addImageToPhotos:]):
Use the image size instead of the SharedMemory size.
2015-03-23 Enrica Casucci <enrica@apple.com>
[iOS] WebContent crash attempting to select text with a gesture at RenderObject::absoluteBoundingBoxRect.
https://bugs.webkit.org/show_bug.cgi?id=142913
rdar://problem/16400033
Reviewed by Sam Weinig.
When looking for the best candidate range at the given position,
we should skip nodes that don't have a renderer.
This is a speculative fix.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
2015-03-23 Alexey Proskuryakov <ap@apple.com>
REGRESSION (Yosemite): WKView visibility notifications are messed up
https://bugs.webkit.org/show_bug.cgi?id=142945
Reviewed by Tim Horton.
As these notifications cannot be used by NSView subclasses, create a separate
object for observing them.
* UIProcess/API/mac/WKView.mm:
(-[WKWindowVisibilityObserver initWithView:]):
(-[WKWindowVisibilityObserver startObserving:]):
(-[WKWindowVisibilityObserver stopObserving:]):
(-[WKWindowVisibilityObserver _windowDidOrderOnScreen:]):
(-[WKWindowVisibilityObserver _windowDidOrderOffScreen:]):
(-[WKView addWindowObserversForWindow:]):
(-[WKView removeWindowObservers]): Also, don't try to remove NSWindowWillOrderOffScreenNotification,
which we never start to observe.
(-[WKView initWithFrame:processPool:configuration:webView:]):
* UIProcess/API/mac/WKViewInternal.h:
2015-03-23 Anders Carlsson <andersca@apple.com>
Make platform/mac-wk2/plugins/destroy-during-async-npp-new.html work again.
https://bugs.webkit.org/show_bug.cgi?id=133692
rdar://problem/17255947
Reviewed by Alexey Proskuryakov.
Add plug-in destruction protectors around message receiver code that can call out to NPObjects or JavaScript
where we need the plug-in to stay around after the call.
* Shared/Plugins/NPObjectMessageReceiver.cpp:
(WebKit::NPObjectMessageReceiver::invoke):
(WebKit::NPObjectMessageReceiver::invokeDefault):
(WebKit::NPObjectMessageReceiver::getProperty):
(WebKit::NPObjectMessageReceiver::setProperty):
(WebKit::NPObjectMessageReceiver::construct):
2015-03-23 Anders Carlsson <andersca@apple.com>
Put the WK_NULLABLE_SPECIFIER in the right place for block parameters
https://bugs.webkit.org/show_bug.cgi?id=142975
rdar://problem/19863930
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKWebView.h:
2015-03-23 Tim Horton <timothy_horton@apple.com>
Add a share item to the link action menu
https://bugs.webkit.org/show_bug.cgi?id=142961
<rdar://problem/19198374>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _hitLinkURL]):
Factor out _hitLinkURL from various places.
(-[WKActionMenuController _openURLFromActionMenu:]):
(-[WKActionMenuController _addToReadingListFromActionMenu:]):
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(-[WKActionMenuController _createShareActionMenuItemForTag:withItems:]):
Adopt -[NSMenuItem standardShareMenuItemWithItems].
All of the null-checking is unnecessary as it's impossible to enter
these functions with a null image/etc.
(-[WKActionMenuController _defaultMenuItemsForLink]):
* Shared/API/c/WKActionMenuItemTypes.h:
Add a 'Share' item to the link menu.
2015-03-23 Zan Dobersek <zdobersek@igalia.com>
[GTK] Use std::abs() in ClickCounter::currentClickCountForGdkButtonEvent()
https://bugs.webkit.org/show_bug.cgi?id=142964
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(ClickCounter::currentClickCountForGdkButtonEvent): Use the STL's std::abs()
instead of C's abs(). The templated nature of std::abs() ensures the proper
computation that matches the types of the passed-in values, and shuts down
a warning when compiling with Clang.
2015-03-23 Zan Dobersek <zdobersek@igalia.com>
[GTK][WK2] webkitBackForwardListChanged() should operate on a Vector reference
https://bugs.webkit.org/show_bug.cgi?id=142963
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitBackForwardList.cpp:
(webkitBackForwardListChanged): This function only reads from the passed-in
Vector of removed items, so only a const lvalue reference to the Vector
is needed.
* UIProcess/API/gtk/WebKitBackForwardListPrivate.h:
2015-03-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add a configure option to build without Redirected XComposite Window
https://bugs.webkit.org/show_bug.cgi?id=142865
Reviewed by Žan Doberšek.
Use USE(REDIRECTED_XCOMPOSITE_WINDOW) instead of
USE(TEXTURE_MAPPER_GL) && PLATFORM(X11).
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize): Use the XID of the WebKitWebView
window as native surface handle when REDIRECTED_XCOMPOSITE_WINDOW
is disabled.
(webkitWebViewRenderAcceleratedCompositingResults):
(resizeWebKitWebViewBaseFromAllocation):
(webkitWebViewBaseEnterAcceleratedCompositingMode):
(webkitWebViewBaseExitAcceleratedCompositingMode):
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
* UIProcess/gtk/RedirectedXCompositeWindow.h:
2015-03-22 Eric Carlson <eric.carlson@apple.com>
[Mac] Enable WIRELESS_PLAYBACK_TARGET for WK1
https://bugs.webkit.org/show_bug.cgi?id=142940
Reviewed by Sam Weinig.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::playbackTargetSelected): Argument to didChoosePlaybackTarget is now const.
2015-03-22 Anders Carlsson <andersca@apple.com>
_WKWebsiteDataStore should clear WebSQL databases
https://bugs.webkit.org/show_bug.cgi?id=142947
rdar://problem/20242174
Reviewed by Sam Weinig.
* Shared/WebsiteData/WebsiteDataTypes.h:
Add WebsiteDataTypeWebSQLDatabases.
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Initialize configuration.webSQLDatabaseDirectory.
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
Add WKWebsiteDataTypeWebSQLDatabases.
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm:
(dataTypesToString):
Handle WKWebsiteDataTypeWebSQLDatabases.
* UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):
Handle WKWebsiteDataTypeWebSQLDatabases and WebsiteDataTypes::WebsiteDataTypeWebSQLDatabases.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
Initialize m_webSQLDatabaseDirectory and add a queue member variable.
(WebKit::WebsiteDataStore::fetchData):
Fetch database origins.
(WebKit::WebsiteDataStore::removeData):
Remove databases.
* UIProcess/WebsiteData/WebsiteDataStore.h:
Add new members.
2015-03-22 Dan Bernstein <mitz@apple.com>
[iOS] Expose WebPageProxy::setInitialFocus as SPI
https://bugs.webkit.org/show_bug.cgi?id=142951
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): New SPI.
Just calls through to WKWebContentView, but allows a nil completion handler.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFirstResponder]): Pass an empty lambda for the new callback parameter to
WebPageProxy::setInitialFocus.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setInitialFocus): Added a void callback parameter and made sure to
call it.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
Added. Calls WebPageProxy::setInitialFocus, and once that completes, checks if anything was
focused and if so, becomes first responder, then calls the completion handler.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setInitialFocus): Added a callbackID parameter, and made sure to send the
callback message. Added a temporary change of m_userIsInteracting to true, so that the UI
process won’t ignore any StartAssistingNode message resulting from the focus change.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Added a callbackID parameter to SetInitialFocus.
2015-03-21 Dean Jackson <dino@apple.com>
Remove the prefix for CSS Transforms
https://bugs.webkit.org/show_bug.cgi?id=142927
<rdar://problem/11568151>
Reviewed by Simon Fraser.
Rename AnimatedPropertyWebkitTransform to AnimatedPropertyTransform.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<TextureMapperAnimation>::encode):
2015-03-21 Csaba Osztrogonác <ossy@webkit.org>
[EFL][GTK] Make WebKit2's generate-forwarding-headers.pl less verbose
https://bugs.webkit.org/show_bug.cgi?id=142908
Reviewed by Žan Doberšek.
* Scripts/generate-forwarding-headers.pl:
(createForwardingHeadersForFramework):
2015-03-21 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r181824.
https://bugs.webkit.org/show_bug.cgi?id=142935
Broke Windows build (Requested by ap on #webkit).
Reverted changeset:
"Remove the prefix for CSS Transforms"
https://bugs.webkit.org/show_bug.cgi?id=142927
http://trac.webkit.org/changeset/181824
2015-03-20 Dean Jackson <dino@apple.com>
Remove the prefix for CSS Transforms
https://bugs.webkit.org/show_bug.cgi?id=142927
<rdar://problem/11568151>
Reviewed by Simon Fraser.
Rename AnimatedPropertyWebkitTransform to AnimatedPropertyTransform.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<TextureMapperAnimation>::encode):
2015-03-20 Chris Dumez <cdumez@apple.com>
[WK2] NetworkCache retrievals sometimes fail on browser startup
https://bugs.webkit.org/show_bug.cgi?id=142925
<rdar://problem/20245368>
Reviewed by Antti Koivisto.
NetworkCache retrievals sometimes fail on browser startup for resources
that are actually cached. The reason is that we are using a bloom filter
for performance reasons to avoid unnecessary disk I/O and this bloom
filter is populated on start up in a background thread by traversing the
cache files on disk. However, when restoring the tabs on start-up we
sometimes query this bloom filter before it is completely populated and
we thus fail to retrieve cached entries because we think they don't
exist and don't check the disk.
This patch adds an "isPopulatingContentsFilter" flag that is turned ON
on start up while we are populating the bloon filter. We then bypass
the bloom filter and send queries directly to disk on start up if this
flag is ON.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::initialize):
(WebKit::NetworkCache::Storage::retrieve):
(WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):
(WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation):
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::cacheMayContain):
2015-03-20 Chris Dumez <cdumez@apple.com>
[WK2] Allow stale content when restoring the browser's session state
https://bugs.webkit.org/show_bug.cgi?id=142916
<rdar://problem/20243493>
Reviewed by Darin Adler.
Allow stale content when restoring the browser's session state
(restoring all tabs from previous session), e.g.
- Via History > Reopen All windows from previous session on Safari
- Happens on startup for MobileSafari
I have verified that using "Open in tabs" on a bookmarks folder
still does fresh loads (rdar://problem/8131355) as it is not using
the restoreFromSessionState() code path.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcessForReload):
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::restoreFromSessionState):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::goToBackForwardItem):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2015-03-20 Beth Dakin <bdakin@apple.com>
[Immediate Actions] Should re-enable immediate actions for iBooks
https://bugs.webkit.org/show_bug.cgi?id=142915
-and corresponding-
rdar://problem/19585689
Reviewed by Tim Horton.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:processPool:configuration:webView:]):
2015-03-20 Alex Christensen <achristensen@webkit.org>
Progress towards CMake on Mac.
https://bugs.webkit.org/show_bug.cgi?id=136003
Reviewed by Chris Dumez.
* PlatformMac.cmake:
Add include directories and forwarding headers.
* Shared/API/APIObject.h:
(API::ObjectImpl::operator new):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::intrinsicContentSizeDidChange):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
Fix some unused parameter warnings.
2015-03-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[CMake] Remove duplicated cmake function calls in WebKit2/CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=142901
Reviewed by Csaba Osztrogonác.
add_depencencies(), install() can support multiple targets or location.
We don't need to call it twice.
* CMakeLists.txt: Additionaly move -DBUILDING_WEBKIT to PlatformGTK.cmake,
because it is only used by GTK port.
2015-03-20 Zan Dobersek <zdobersek@igalia.com>
[GTK] Disable accelerated compositing on Wayland
https://bugs.webkit.org/show_bug.cgi?id=142877
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCreateWebPage): As was done in the past, we should disable
accelerated compositing on Wayland until the proper support for it lands.
2015-03-19 Andy Estes <aestes@apple.com>
[Content Filtering] Add tests for unblock requests
https://bugs.webkit.org/show_bug.cgi?id=142900
Reviewed by Andreas Kling.
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Called WebFrameProxy::contentFilterDidBlockLoad.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didStartProvisionalLoad): Assigned a default-constructed ContentFilterUnblockHandler instead of calling clear().
(WebKit::WebFrameProxy::didHandleContentFilterUnblockNavigation): Renamed from contentFilterDidHandleNavigationAction.
Updated to use ContentFilterUnblockHandler's new API.
(WebKit::WebFrameProxy::contentFilterDidHandleNavigationAction): Deleted.
* UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::contentFilterDidBlockLoad): Renamed from setContentFilterUnblockHandler.
(WebKit::WebFrameProxy::setContentFilterUnblockHandler): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction): Called WebFrameProxy::didHandleContentFilterUnblockNavigation.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): If the unblock handler needs the UI process,
send WebPageProxy::ContentFilterDidBlockLoadForFrame. Oterwise, call PolicyChecker::setContentFilterUnblockHandler.
2015-03-20 Zan Dobersek <zdobersek@igalia.com>
[GTK] Properly guard X11-specific code in BackingStore::createBackend()
https://bugs.webkit.org/show_bug.cgi?id=142875
Reviewed by Martin Robinson.
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::createBackend): Guard the GTK- and X11-specific
bit of code with PLATFORM(GTK) and PLATFORM(X11). Testing GDK_WINDOWING_X11
ensures that the GTK+ dependency has X11 support, but does not ensure
that WebKitGTK+ has been configured to build for X11 environments (which
is what PLATFORM(X11) ensures).
2015-03-19 Chris Dumez <cdumez@apple.com>
[WK2] We should allow stale content when restoring a killed / crashed WebProcess
https://bugs.webkit.org/show_bug.cgi?id=142893
<rdar://problem/19633737>
<rdar://problem/19869257>
Reviewed by Antti Koivisto.
Allow stale content when restoring a killed / crashed WebProcess
(similarly to a history navigation). This is actually what was intended
as we call WebPage::goToBackForwardItem() in this case, which uses
IndexedBackForward load type. However, this value was then ignored in
FrameLoader::loadDifferentDocumentItem().
This patch gets rid of the special casing in
FrameLoader::loadDifferentDocumentItem() and makes it clear at call
sites when calling goToBackForwardItem() if we should allow stale
content or not. If goToBackForwardItem() is called with the
allowStaleContent flag off, we'll keep using the IndexedBackForward
frame load type. However, if the flag is on, we'll use the Standard
frame load type and do a fresh load.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcessForReload):
Set allowStaleContent flag to true as we want to allow stale content
when reloading a WebProcess after it crashed or was killed (behavior
change).
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
Add allowStaleContent parameter so that call sites can decide which
policy to use.
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
Set allowStaleContent flag to true as this is our policy for history
navigations.
(WebKit::WebPageProxy::goToBackForwardItem):
Add allowStaleContent parameter so that the call site can let us know
what to do. This is useful as this is called not only for indexed
back / forward navigations (allowing stale content) but also for
restoring session state (forbidding state content:
<rdar://problem/8131355>).
(WebKit::WebPageProxy::restoreFromSessionState):
Call goToBackForwardItem() with allowStaleContent flag set to false
as users expect fresh contents in this case. This method is called
when:
- Tabs are restored on Safari / MobileSafari startup
- Tabs are restored via "History > Reopen All windows from last session"
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::goToBackForwardItem):
Add allowStaleContent parameter and use "Standard" frame load type
instead of "IndexedBackForward" if it is false. This is needed as
"IndexedBackForward" frame load type allows using stale content.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Add allowStaleContent flag to GoToBackForwardItem message.
2015-03-19 Eric Carlson <eric.carlson@apple.com>
[Mac] Move MediaPlaybackTargetPicker
https://bugs.webkit.org/show_bug.cgi?id=142889
Move WebMediaPlaybackTargetPickerProxy to WebCore so it can be used by
both WK2 and WK1.
Reviewed by Tim Horton.
* UIProcess/PageClient.h:
* UIProcess/WebMediaPlaybackTargetPickerProxy.cpp: Removed.
* UIProcess/WebMediaPlaybackTargetPickerProxy.h: Removed.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::devicePickerProxy):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::createPlaybackTargetPicker):
* UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.h: Removed.
* UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2015-03-19 Jessie Berlin <jberlin@webkit.org>
32-bit build fix after r181770.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:webView:]):
2015-03-19 Anders Carlsson <andersca@apple.com>
Add support for deleting individual cache entries
https://bugs.webkit.org/show_bug.cgi?id=142886
Reviewed by Antti Koivisto.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
Remove an unnecessary call to cfURLCacheOrigins().
(WebKit::clearDiskCacheEntries):
Helper function for clearing disk cache entries. This handles both the old and new cache implementations.
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
Call clearDiskCacheEntries if needed.
2015-03-19 Jer Noble <jer.noble@apple.com>
[WK2][Mac] Fullscreen animations with mismatched aspect ratios are "squished".
https://bugs.webkit.org/show_bug.cgi?id=142132
Reviewed by Tim Horton.
Use CALayer animations for the transition into and out of fullscreen.
The fullscreen transition consists of three separate animations:
1. An opacity animation for the black backdrop behind the fullscreen content
2. A scale/translation animation from fullscreen element's initial screen to its final one.
3. A clip animation from the fullscreen element's initial aspect ratio to its final one.
The opacity animation will apply to the fullscreen window's content view's layer's
background color. To separately animate the transform and mask of the web view's content, a
layer-backed subview is added to the content view, and the scale/translation & clip
animations are applied to its transform property and mask layer respectively.
Utility methods to create each animation have been added, and each includes a parameter for
the direction of the animation, so that the same methods can be used for entering and
exiting fullscreen transitions.
The user-visible changes to this new transition are when the aspect ratios of the initial
and final screen locations are different: previously the transition would use a scale
transform to "squish" the fullscreen content into the initial aspect ratio. The new
transition instead "clips" the fullscreen content to the initial aspect ratio. For common
operations such a <video> element with a different aspect ratio than the screen, this makes
the black letterbox "grow" during the transition, and makes the transition overall much
smoother.
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:webView:]): Create and initialze the clipping view.
(-[WKFullScreenWindowController applicationDidChangeScreenParameters:]): _backgroundWindow was removed.
(-[WKFullScreenWindowController enterFullScreen:]): Add the webView to the _clipView, not the contentView.
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): _backgroundWindow,
_fadeAnimation, and _scaleAnimation are all removed.
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Ditto.
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Ditto. Hide the contentView's
layer. Pause visibility updates.
(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): Resume visibility updates.
(-[WKFullScreenWindowController close]): _fadeAnimation and _scaleAnimation are removed.
(-[WKFullScreenWindowController customWindowsToEnterFullScreenForWindow:]): Return only the fullscreen
window.
(-[WKFullScreenWindowController customWindowsToExitFullScreenForWindow:]): Ditto.
(zoomAnimation): Added.
(maskAnimation): Added.
(fadeAnimation): Added.
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): Use the utility
methods above to set up the animation.
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): Ditto.
(createBackgroundFullscreenWindow): Deleted.
(windowFrameFromApparentFrames): Deleted.
2015-03-19 Enrica Casucci <enrica@apple.com>
<attachment> should put URLs on the pasteboard so that Finder can accept drops.
https://bugs.webkit.org/show_bug.cgi?id=142801
rdar://problem/19982527
Reviewed by Tim Horton.
This patch adds all the necessary support to write attachment elements into
the pasteboard, including the promised type in WK2.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setPromisedDataForImage:withFileName:withExtension:withTitle:withURL:withVisibleURL:withArchive:forPasteboard:]):
(-[WKView _setPromisedDataForAttachment:withExtension:withTitle:withURL:withVisibleURL:forPasteboard:]):
(-[WKView namesOfPromisedFilesDroppedAtDestination:]):
(-[WKView _setPromisedData:withFileName:withExtension:withTitle:withURL:withVisibleURL:withArchive:forPasteboard:]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setPromisedDataForImage):
(WebKit::PageClientImpl::setPromisedDataForAttachment):
(WebKit::PageClientImpl::setPromisedData): Deleted.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setPromisedDataForImage):
(WebKit::WebPageProxy::setPromisedDataForAttachment):
(WebKit::WebPageProxy::setPromisedData): Deleted.
* WebProcess/WebCoreSupport/WebDragClient.h:
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::declareAndWriteAttachment):
(WebKit::WebDragClient::declareAndWriteDragImage):
2015-03-19 Anders Carlsson <andersca@apple.com>
Cache::remove should take a Key instead of an entry
https://bugs.webkit.org/show_bug.cgi?id=142878
Reviewed by Antti Koivisto.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::remove):
* NetworkProcess/cache/NetworkCache.h:
2015-03-19 Chris Dumez <cdumez@apple.com>
Clean up DOMTimer related settings
https://bugs.webkit.org/show_bug.cgi?id=142837
Reviewed by Darin Adler.
Stop setting the DOMTimers' default minimum interval to 4ms as this
is now the default.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
2015-03-19 Chris Dumez <cdumez@apple.com>
The network cache should ignore "cache-control: no-cache, must-revalidate" on history navigation
https://bugs.webkit.org/show_bug.cgi?id=142831
<rdar://problem/20209957>
Reviewed by Antti Koivisto.
The network cache should ignore "no-cache" and "must-revalidate" as
Cache-Control policy for history navigations to avoid unnecessary
revalidation in this case. Our memory cache already behaves this way.
On history navigation, our disk cache implementation currently
revalidates unconditionally resources if "cache-control: no-cache" is
used. It also revalidates expired resources if "cache-control:
must-revalidate" is used. This is sub-optimal.
RFC 7234 does not require us to do so [1]:
"""
User agents often have history mechanisms, such as "Back" buttons and
history lists, that can be used to redisplay a representation
retrieved earlier in a session.
The freshness model (Section 4.2) does not necessarily apply to
history mechanisms. That is, a history mechanism can display a
previous representation even if it has expired.
"""
Chrome and IE9+ [2] already ignore "cache-control: must-revalidate" on history navigation.
[1] https://tools.ietf.org/html/rfc7234#page-32
[2] http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx
Test: http/tests/cache/disk-cache-validation-back-navigation-policy.html
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::decodeStorageEntry):
2015-03-18 Simon Fraser <simon.fraser@apple.com>
Don't paint PDFs on every scroll
https://bugs.webkit.org/show_bug.cgi?id=142857
rdar://problem/20130207
Reviewed by Tim Horton.
Don't push a scale factor onto the PDF layer controller if it hasn't
changed, since doing so causes a repaint.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):
2015-03-18 Anders Carlsson <andersca@apple.com>
Use && instead of & when deciding if the network cache should be cleared
https://bugs.webkit.org/show_bug.cgi?id=142845
Reviewed by Antti Koivisto.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteData):
2015-03-18 Anders Carlsson <andersca@apple.com>
Add WKContextGetWebsiteDataStore API
https://bugs.webkit.org/show_bug.cgi?id=142832
rdar://problem/16544715
Reviewed by Sam Weinig.
Also add WKWebsiteDataStoreRef which is toll-free bridged to _WKWebsiteDataStore.
* Shared/API/c/WKBase.h:
Add new declaration.
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::create):
* UIProcess/API/APIWebsiteDataStore.h:
Add a new function that takes a configuration.
* UIProcess/API/C/WKAPICast.h:
Add cast.
* UIProcess/API/C/WKContext.cpp:
(WKContextGetWebsiteDataStore):
Return the context's website data store.
* UIProcess/API/C/WKContext.h:
Add new declaration.
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp: Added.
* UIProcess/API/C/WKWebsiteDataStoreRef.h: Added.
Add new files.
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
(WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
(WebKit::WebKeyValueStorageManager::deleteAllEntries):
Update now that WebProcessPool holds on to an API::WebsiteDataStore.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::createWebPage):
* UIProcess/WebProcessPool.h:
WebProcessPool should hold on to an API::WebsiteDataStore instead of a WebKit::WebsiteDataStore.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
2015-03-18 Tim Horton <timothy_horton@apple.com>
Cannot invoke action menus anymore
https://bugs.webkit.org/show_bug.cgi?id=142797
<rdar://problem/20032670>
* UIProcess/API/mac/WKView.mm:
Need one more respondsToSelector check.
2015-03-18 Chris Dumez <cdumez@apple.com>
[WK2] Log the number of network cache requests that we have never seen before
https://bugs.webkit.org/show_bug.cgi?id=142828
<rdar://problem/19632130>
Reviewed by Antti Koivisto.
Log the number of network cache requests that we have never seen before
using diagnostic logging.
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCache::Statistics::recordRetrievalFailure):
2015-03-17 Antti Koivisto <antti@apple.com>
Prune least valuable cache entries first
https://bugs.webkit.org/show_bug.cgi?id=142810
rdar://problem/19632130
Reviewed by Darin Adler.
When pruning the cache estimate relative value of each entry using formula
age = current time - creation time
accessAge = last access time - creation time
value = accessAge / age
That is, we value entries that have been accessed recently and survived in the cache longest.
The most valuable entries don't get deleted at all while the deletion probablity ramps up for
lower value entries.
* NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
(WebKit::NetworkCache::fileTimes):
Get the creation time and access time for a file.
(WebKit::NetworkCache::updateFileAccessTimeIfNeeded):
Update access time manually if the file system doesn't do it automatically.
* NetworkProcess/cache/NetworkCacheIOChannel.h:
(WebKit::NetworkCache::IOChannel::path):
(WebKit::NetworkCache::IOChannel::type):
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::open):
Remember the file path and move most of the work to constructor.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::Storage::updateFileAccessTime):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::deletionProbability):
Compute the probability based on entry age and access time.
(WebKit::NetworkCache::Storage::shrinkIfNeeded):
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::serialBackgroundIOQueue):
(WebKit::NetworkCache::Storage::deleteQueue): Deleted.
More generic name.
2015-03-18 Chris Dumez <cdumez@apple.com>
[WK2] Log total number of network cache queries using diagnostic logging
https://bugs.webkit.org/show_bug.cgi?id=142803
<rdar://problem/19632130>
Reviewed by Antti Koivisto.
Log total number of network cache queries using diagnostic logging.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
* NetworkProcess/cache/NetworkCacheStatistics.h:
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::NetworkCache::Statistics::recordCacheRetrievalRequest):
2015-03-18 Chris Dumez <cdumez@apple.com>
[WK2] We should not even try the network cache for non-HTTP protocol requests
https://bugs.webkit.org/show_bug.cgi?id=142802
<rdar://problem/19632130>
Reviewed by Antti Koivisto.
We should not even try the network cache for non-HTTP protocol requests
and the network cache cannot handle those.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::canRetrieve):
(WebKit::NetworkCache::Cache::retrieve):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::NetworkCache::retrieveDecisionToDiagnosticKey):
2015-03-17 Conrad Shultz <conrad_shultz@apple.com>
Ignore some deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=142813
Reviewed by Mark Rowe.
Fixing the deprecations is tracked by: <rdar://problem/20201450>
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::populate):
2015-03-17 Ryuan Choi <ryuan.choi@navercorp.com>
[EFL] Expose JavaScript binding interface through ewk_extension
https://bugs.webkit.org/show_bug.cgi?id=142033
Reviewed by Gyuyoung Kim.
* PlatformEfl.cmake:
* UIProcess/API/efl/tests/extensions/extension_sample.cpp: Registered test object for new test case.
* UIProcess/API/efl/tests/test_ewk2_javascript_binding.cpp: Added simple binding API test case.
(EWK2ContextTestWithExtension::messageReceivedCallback):
(EWK2ContextTestWithExtension::EWK2ContextTestWithExtension):
(TEST_F):
* WebProcess/InjectedBundle/API/efl/EWebKit_Extension.h:
* WebProcess/InjectedBundle/API/efl/ewk_extension.cpp:
(EwkExtension::didCreatePage):
(EwkExtension::willDestroyPage):
* WebProcess/InjectedBundle/API/efl/ewk_extension.h:
* WebProcess/InjectedBundle/API/efl/ewk_extension_private.h:
* WebProcess/InjectedBundle/API/efl/ewk_page.cpp: Added.
(toEwkPage):
(EwkPage::EwkPage):
(EwkPage::append):
(EwkPage::remove):
(EwkPage::didFinishDocumentLoadForFrame):
(ewk_page_js_global_context_get):
(ewk_page_client_register):
(ewk_page_client_unregister):
* WebProcess/InjectedBundle/API/efl/ewk_page.h: Added.
* WebProcess/InjectedBundle/API/efl/ewk_page_private.h: Added.
(EwkPage::page):
* efl/ewebkit2-extension.pc.in:
2015-03-17 Tim Horton <timothy_horton@apple.com>
Cannot invoke action menus anymore
https://bugs.webkit.org/show_bug.cgi?id=142797
<rdar://problem/20032670>
* UIProcess/API/mac/WKView.mm:
Need a respondsToSelector check.
2015-03-17 Tim Horton <timothy_horton@apple.com>
Cannot invoke action menus anymore
https://bugs.webkit.org/show_bug.cgi?id=142797
<rdar://problem/20032670>
Reviewed by Beth Dakin.
* UIProcess/API/mac/WKView.mm:
Don't process mouse events that would make an action menu; call super
and let AppKit take care of it. We have to duplicate the macro so that
we can avoid calling super for the internal-only methods.
Also, otherMouseMoved is simply not a thing, so remove it.
2015-03-17 Beth Dakin <bdakin@apple.com>
DOM mouse events have weird timing for force clickable elements in Safari 8.0.3 on
10.10.2
https://bugs.webkit.org/show_bug.cgi?id=142700
-and corresponding-
rdar://problem/20165168
Reviewed by Tim Horton.
No need to tell the WKImmediateActionController about mouse down any more since we
are expecting it at the beginning of an immediate action interaction.
* UIProcess/API/mac/WKView.mm:
(-[WKView mouseDown:]):
Set the delaysPrimaryMouseButtonEvents to NO for the
_immediateActionGestureRecognizer. This will cause AppKit to send up the mouse
events at the expected time.
(-[WKView initWithFrame:processPool:configuration:webView:]):
WebCore::EventHandler now needs to know if an immediate action cancelled or
completed. This plumbs that information down.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::immediateActionDidCancel):
(WebKit::WebPageProxy::immediateActionDidComplete):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
(-[WKImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):
(-[WKImmediateActionController wkView:willHandleMouseDown:]): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Call EventHandler::setImmediateActionStage() with the appropriate stage.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::immediateActionDidCancel):
(WebKit::WebPage::immediateActionDidComplete):
2015-03-17 Timothy Horton <timothy_horton@apple.com>
Reproducible null deref under ScriptedAnimationController::createDisplayRefreshMonitor
https://bugs.webkit.org/show_bug.cgi?id=142776
<rdar://problem/18921338>
Reviewed by Alexey Proskuryakov.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createDisplayRefreshMonitor):
* WebProcess/WebCoreSupport/WebChromeClient.h:
Adjust to the new signature.
2015-03-17 Antti Koivisto <antti@apple.com>
Disk cache should support Vary: Cookie
https://bugs.webkit.org/show_bug.cgi?id=142770
rdar://problem/19764945
Reviewed by Anders Carlsson.
Cookies are not part of the original request but are added by the networking layer when submitting the request.
Fetch them explicitly when resolving Vary: Cookie.
The implementation is not perfect as it fetches the cookie for the cache entry when saving a Vary:Cookie response,
not when making the request. In principle the cookie may have changed in-between. This should be enough to handle
reasonable cases though. Fetching cookies for every request might be too expensive for this rarely used feature.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::headerValueForVary):
(WebKit::NetworkCache::encodeStorageEntry):
(WebKit::NetworkCache::verifyVaryingRequestHeaders):
2015-03-17 Zan Dobersek <zdobersek@igalia.com>
[WK2] Use C++ lambdas in IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=138018
Reviewed by Anders Carlsson.
Replace uses of WTF::bind() in the IPC::Connection class with C++ lambdas.
* Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage): Simplify the error messages so we
don't have to format strings on-the-fly, removing the issues of cross-thread
string copying altogether.
(IPC::Connection::dispatchDidReceiveInvalidMessage): The parameters are now
of the StringReference type.
(IPC::Connection::enqueueIncomingMessage):
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::receiveSourceEventHandler):
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::open):
2015-03-17 Zan Dobersek <zdobersek@igalia.com>
[CMake] Use a forwarding header for ANGLE's ShaderLang.h to avoid picking up ANGLE's EGL headers
https://bugs.webkit.org/show_bug.cgi?id=142530
Reviewed by Darin Adler.
* CMakeLists.txt: Replace the Source/ThirdParty/ANGLE/include/GLSLANG entry
in the list of inclusion directories for WebKit2 with Source/ThirdParty/ANGLE,
possible due to the new forwarding header for ANGLE's ShaderLang.h.
2015-03-17 Gwang Yoon Hwang <yoon@igalia.com>
REGRESSION(r180924): Unable to build WebKitGTK+ with threaded compositor
Unreviewed build fix.
* WebProcess/WebPage/LayerTreeHost.h:
Remove duplicated declaration of setNativeSurfaceHandleForCompositing.
2015-03-16 Ryosuke Niwa <rniwa@webkit.org>
Enable ES6 classes by default
https://bugs.webkit.org/show_bug.cgi?id=142774
Reviewed by Gavin Barraclough.
* Configurations/FeatureDefines.xcconfig:
2015-03-16 Conrad Shultz <conrad_shultz@apple.com>
Don't pass nil as a fireDate for NSTimer
https://bugs.webkit.org/show_bug.cgi?id=142765
Reviewed by Dan Bernstein.
While we're here, switch to a selector that conforms to documented NSTimer API.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController cancelOperation:]):
Set the timer's fireDate as the future date matching the former interval; update the selector.
(-[WKFullScreenWindowController _watchdogTimerFired:]):
Timer callback; wrap -exitFullScreen.
2015-03-16 Alex Christensen <achristensen@webkit.org>
Progress towards CMake on Mac
https://bugs.webkit.org/show_bug.cgi?id=142747
Reviewed by Chris Dumez.
* PlatformMac.cmake:
Started adding Mac-specific directories and headers.
2015-03-16 Alexey Proskuryakov <ap@apple.com>
ASSERT(m_plugin) on plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image.html
https://bugs.webkit.org/show_bug.cgi?id=142637
Reviewed by Dean Jackson.
* WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::pluginSnapshotTimerFired):
m_plugin can be legitimately null.
2015-03-16 Csaba Osztrogonác <ossy@webkit.org>
One more URTBF after r181578.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2015-03-16 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r181578.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setCSSAnimationTriggersEnabled): Copy/paste error fixed.
2015-03-16 Dean Jackson <dino@apple.com>
Expose WK2 preference for Animation Triggers runtime flag
https://bugs.webkit.org/show_bug.cgi?id=142744
Reviewed by Anders Carlsson.
Expose CSSAnimationTriggersEnabled, linking it to the runtime enabled
feature flag.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCSSAnimationTriggersEnabled):
(WKPreferencesGetCSSAnimationTriggersEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setCSSAnimationTriggersEnabled):
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2015-03-16 Conrad Shultz <conrad_shultz@apple.com>
Allow clients to selectively disable plug-ins
https://bugs.webkit.org/show_bug.cgi?id=142506
Reviewed by Anders Carlsson.
Add new functionality allow clients to declaratively disable individual plug-ins (in a manner that conceals them
from the page). As part of this:
1) Introduce the concept of web-visible plug-ins and related concepts, as distinct from the real underlying
set of plug-ins.
2) Where applicable, plumb additional information about plug-ins (specifically, bundle identification) deeper
down the stack.
3) Add generic functionality to PluginStrategy to support filtering plug-ins for visibility and introduce
a concrete implementation thereof in WebPlatformStrategies in WebKit2.
4) Add messaging infrastructure to allow clients to set and clear plug-in policies.
While currently only used in a very limited manner, the new declarative plug-in policies are written generically
so that they could be easily used in the future to reduce synchronous messaging to the client when loading plug-ins.
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::NetscapePluginModule::getPluginInfo):
Set new PluginInfo members.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<PluginInfo>::encode):
Handle new PluginInfo members.
(IPC::ArgumentCoder<PluginInfo>::decode):
Ditto.
* Shared/WebProcessCreationParameters.h:
Declare a member to store client plug-in policies.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
Encode the policies.
(WebKit::WebProcessCreationParameters::decode):
Decode the policies.
* UIProcess/API/C/WKAPICast.h:
(WebKit::toWKPluginLoadClientPolicy):
Teach how to cast between WebCore and WebKit2 policy definitions.
(WebKit::toPluginLoadClientPolicy):
Ditto.
* UIProcess/API/C/WKPluginLoadPolicy.h:
Declare WKPluginLoadClientPolicy, matching PluginLoadClientPolicy in WebCore.
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextSetPluginLoadClientPolicy):
New function; wrap WebProcessPool::setPluginLoadClientPolicy().
(WKContextClearPluginClientPolicies):
New function; wrap WebProcessPool::clearPluginClientPolicies().
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
Copy any client plug-in policies to the new process' creation parameters.
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
Send SetPluginLoadClientPolicy to all processes and stash the passed-in policy info.
(WebKit::WebProcessPool::clearPluginClientPolicies):
Send ClearPluginClientPolicies to all processes and clear any stashed policy info.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::pluginInfo):
Set new PluginInfo member.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::pluginSupportsExtension):
Adopt getWebVisibleMimesAndPluginIndices().
(WebKit::WebFrameLoaderClient::objectContentType):
Update to reflect reflect function rename.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::getPluginInfo):
Pass the Page to populatePluginCache().
(WebKit::WebPlatformStrategies::getWebVisiblePluginInfo):
New member function; wrap getPluginInfo(); if appropriate, filter out plug-ins the client has asked
to block on the current page.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
New member function; map empty inputs to a wildcard character and insert the new policy into the nested map.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies):
New member function; empty m_hostsToPluginIdentifierData.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost):
New member function; look up the most specific policy for the given plug-in and host.
(WebKit::WebPlatformStrategies::populatePluginCache):
If appropriate, set the client load policy on the plug-ins; do this irrespective of whether the cache has
been populated since the Page, and therefore host, may change.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::canShowMIMEType):
Update to reflect function rename.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Enumerate and process the client plug-in policies in the creation parameters.
(WebKit::WebProcess::setPluginLoadClientPolicy):
New member function; wrap PluginStrategy::setPluginLoadClientPolicy.
(WebKit::WebProcess::clearPluginClientPolicies):
New member function; wrap PluginStrategy::clearPluginClientPolicies().
* WebProcess/WebProcess.messages.in:
Add messages for setting and clearing policies.
2015-03-16 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Add new Notification classes to GTK+ API documentation.
Add WebKitNotification and WebKitNotificationPermissionRequest to
the documentation and fix some other typos causing warnings when
generating HTML documentation.
* UIProcess/API/gtk/WebKitUserContent.cpp:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_class_init):
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
2015-03-16 Przemyslaw Piorkowski <p.piorkowski@samsung.com>
[EFL][WK2] REGRESSION(r178526): test_ewk2_storage_manager has been failed for a long time
https://bugs.webkit.org/show_bug.cgi?id=141249
Reviewed by Gyuyoung Kim.
* PlatformEfl.cmake: Enable test_ewk2_storage_manager for EFL port - it is passing now.
2015-03-16 David Kilzer <ddkilzer@apple.com>
[iOS] REGRESSION (r181511): Most layout tests crash with a NULL deref
Follow-up fix for:
[iOS] Presenting a modal sheet on top of a WKWebView causes it to lose focused, active state
<http://webkit.org/b/142702>
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isViewWindowActive): Add NULL check for m_webView.
(WebKit::PageClientImpl::isViewFocused): Ditto.
2015-03-15 Simon Fraser <simon.fraser@apple.com>
Clean up related to wheelEvent names
https://bugs.webkit.org/show_bug.cgi?id=142713
Reviewed by Anders Carlsson.
Add EventNames::isWheelEventType() and use it in places that test for the
two wheel event names.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::handleEvent):
2015-03-15 Dan Bernstein <mitz@apple.com>
[iOS] Presenting a modal sheet on top of a WKWebView causes it to lose focused, active state
https://bugs.webkit.org/show_bug.cgi?id=142702
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView becomeFirstResponder]): Override to delegate first responder status to the
WKContentView if possible.
(-[WKWebView _retainActiveFocusedState]): New SPI that prevents view hierarchy changes from
affecting the active and focused state of the view. Increments a counter ivar and returns a
completion block (which callers must call when they’re done) that decrements it back.
* UIProcess/API/Cocoa/WKWebViewInternal.h: Declared new _activeFocusedStateRetainCount ivar
with @package access.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared new method.
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isViewWindowActive): Return true if active/focused state is to be
maintained despite not being visible.
(WebKit::PageClientImpl::isViewFocused): Return true if active/focused state is to be
maintained despite not being active.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView resignFirstResponder]): Don’t blur the assisted node if active/focused
state is to be maintained.
2015-03-14 Simon Fraser <simon.fraser@apple.com>
Clean up use of flags in localToContainer-type functions
https://bugs.webkit.org/show_bug.cgi?id=142704
Reviewed by Alexey Proskuryakov.
Pass UseTransforms explicitly to localToContainerPoint()
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
2015-03-14 Brent Fulgham <bfulgham@apple.com>
[iOS] scroll snap points are animating to the wrong positions.
https://bugs.webkit.org/show_bug.cgi?id=142705
<rdar://problem/20136946>
Reviewed by Simon Fraser.
Scroll snapping was landing in the wrong place on iOS because of two problems:
(1) It was searching for the closest snap offset point using unscaled 'screen' pixels,
which caused it to always choose one of the earliest snap point options.
(2) It was then selecting a scaled snap point coordinate and passing it back to UIKit
to animate the snap. This caused it to select a target point beyond the 'screen' pixel
we want to hit.
The solution to both problems are to scale the scroll destination UIKit suggests so that
we search among the scaled points with a valid value. Then, we need to scale the returned
value back to screen units before handing it back to UIKit to process.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewWillBeginDragging:]): Drive-by fix. Get rid of extra ';' at
the end of the line.
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling):
2015-03-14 Dean Jackson <dino@apple.com>
Feature flag for Animations Level 2
https://bugs.webkit.org/show_bug.cgi?id=142699
<rdar://problem/20165097>
Reviewed by Brent Fulgham.
Add ENABLE_CSS_ANIMATIONS_LEVEL_2 and a runtime flag animationTriggersEnabled.
* Configurations/FeatureDefines.xcconfig:
2015-03-14 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
[GStreamer] share GL context in pipeline
https://bugs.webkit.org/show_bug.cgi?id=142693
Reviewed by Philippe Normand.
* WebProcess/gtk/WebProcessMainGtk.cpp: Enable XInitThreads() if
GSTREAMER_GL is used, since GstGL elements use another thread for
queuing GL operations.
2015-03-13 Alex Christensen <achristensen@webkit.org>
Progress towards CMake on Mac.
https://bugs.webkit.org/show_bug.cgi?id=142680
Reviewed by Gyuyoung Kim.
* PlatformMac.cmake: Added.
2015-03-13 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r181483.
https://bugs.webkit.org/show_bug.cgi?id=142688
Caused use-after-free on many tests (Requested by ap on
#webkit).
Reverted changeset:
"Allow clients to selectively disable plug-ins"
https://bugs.webkit.org/show_bug.cgi?id=142506
http://trac.webkit.org/changeset/181483
2015-03-13 Eric Carlson <eric.carlson@apple.com>
[Mac] Enable WIRELESS_PLAYBACK_TARGET
https://bugs.webkit.org/show_bug.cgi?id=142635
Reviewed by Darin Adler.
* Configurations/FeatureDefines.xcconfig:
2015-03-13 Timothy Horton <timothy_horton@apple.com>
Sites that use a device-width viewport but don't have enough height to fill the view are scaled up
https://bugs.webkit.org/show_bug.cgi?id=142664
<rdar://problem/18859470>
Reviewed by Benjamin Poulain.
* UIProcess/ios/WKScrollView.mm:
(-[WKScrollView _rubberBandOffsetForOffset:maxOffset:minOffset:range:outside:]):
Now that the WKContentView can (without pinching) be smaller than the unobscured
region of the WKWebView, we need to take that into account when deciding where
to retarget scrolling.
2015-03-13 Mark Lam <mark.lam@apple.com>
Replace TCSpinLock with a new WTF::SpinLock based on WTF::Atomic.
<https://webkit.org/b/142674>
Reviewed by Filip Pizlo.
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::EventDispatcher):
* WebProcess/WebPage/EventDispatcher.h:
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::ViewUpdateDispatcher):
* WebProcess/WebPage/ViewUpdateDispatcher.h:
2015-03-10 Conrad Shultz <conrad_shultz@apple.com>
Allow clients to selectively disable plug-ins
https://bugs.webkit.org/show_bug.cgi?id=142506
Reviewed by Anders Carlsson.
Add new functionality allow clients to declaratively disable individual plug-ins (in a manner that conceals them
from the page). As part of this:
1) Introduce the concept of web-visible plug-ins and related concepts, as distinct from the real underlying
set of plug-ins.
2) Where applicable, plumb additional information about plug-ins (specifically, bundle identification) deeper
down the stack.
3) Add generic functionality to PluginStrategy to support filtering plug-ins for visibility and introduce
a concrete implementation thereof in WebPlatformStrategies in WebKit2.
4) Add messaging infrastructure to allow clients to set and clear plug-in policies.
While currently only used in a very limited manner, the new declarative plug-in policies are written generically
so that they could be easily used in the future to reduce synchronous messaging to the client when loading plug-ins.
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::NetscapePluginModule::getPluginInfo):
Set new PluginInfo members.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<PluginInfo>::encode):
Handle new PluginInfo members.
(IPC::ArgumentCoder<PluginInfo>::decode):
Ditto.
* Shared/WebProcessCreationParameters.h:
Declare a member to store client plug-in policies.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
Encode the policies.
(WebKit::WebProcessCreationParameters::decode):
Decode the policies.
* UIProcess/API/C/WKAPICast.h:
(WebKit::toWKPluginLoadClientPolicy):
Teach how to cast between WebCore and WebKit2 policy definitions.
(WebKit::toPluginLoadClientPolicy):
Ditto.
* UIProcess/API/C/WKPluginLoadPolicy.h:
Declare WKPluginLoadClientPolicy, matching PluginLoadClientPolicy in WebCore.
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextSetPluginLoadClientPolicy):
New function; wrap WebProcessPool::setPluginLoadClientPolicy().
(WKContextClearPluginClientPolicies):
New function; wrap WebProcessPool::clearPluginClientPolicies().
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
Copy any client plug-in policies to the new process' creation parameters.
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
Send SetPluginLoadClientPolicy to all processes and stash the passed-in policy info.
(WebKit::WebProcessPool::clearPluginClientPolicies):
Send ClearPluginClientPolicies to all processes and clear any stashed policy info.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::pluginInfo):
Set new PluginInfo member.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::pluginSupportsExtension):
Adopt getWebVisibleMimesAndPluginIndices().
(WebKit::WebFrameLoaderClient::objectContentType):
Update to reflect reflect function rename.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::getPluginInfo):
Pass the Page to populatePluginCache().
(WebKit::WebPlatformStrategies::getWebVisiblePluginInfo):
New member function; wrap getPluginInfo(); if appropriate, filter out plug-ins the client has asked
to block on the current page.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
New member function; map empty inputs to a wildcard character and insert the new policy into the nested map.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies):
New member function; empty m_hostsToPluginIdentifierData.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost):
New member function; look up the most specific policy for the given plug-in and host.
(WebKit::WebPlatformStrategies::populatePluginCache):
If appropriate, set the client load policy on the plug-ins; do this irrespective of whether the cache has
been populated since the Page, and therefore host, may change.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::canShowMIMEType):
Update to reflect function rename.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Enumerate and process the client plug-in policies in the creation parameters.
(WebKit::WebProcess::setPluginLoadClientPolicy):
New member function; wrap PluginStrategy::setPluginLoadClientPolicy.
(WebKit::WebProcess::clearPluginClientPolicies):
New member function; wrap PluginStrategy::clearPluginClientPolicies().
* WebProcess/WebProcess.messages.in:
Add messages for setting and clearing policies.
2015-03-12 Jon Honeycutt <jhoneycutt@apple.com>
Use UIDocumentMenuViewController to allow selection of files from
iCloud Drive in WKFileUploadPanel
Part of <https://bugs.webkit.org/show_bug.cgi?id=142596> WebKit on
iOS should support file upload from iCloud Drive
<rdar://problem/12178991>
Reviewed by Andy Estes.
* Platform/spi/ios/UIKitSPI.h:
Include UIDocumentMenuViewController_Private.h if it exists. If not,
declare this new SPI.
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(fallbackIconForFile):
Create a UIDocumentInteractionController for the file, and return a
thumbnail image from its smallest icon.
(iconForImageFile):
If we can get a UIImage from the file, create a thumbnail from it.
Otherwise, call fallbackIconForFile().
(iconForVideoFile):
Code moved from -[_WKVideoFileUploadItem displayImage].
(iconForFile):
Get the file's extension, and get the extension's preferred UTI. If the
UTI is an image type, call iconForImageFile(). If it's a video type,
call iconForVideoFile(). Otherwise, return the fallback icon.
(-[_WKFileUploadItem initWithFileURL:]):
Added an initializer that takes a file URL.
(-[_WKFileUploadItem fileURL]):
(-[_WKImageFileUploadItem initWithFileURL:originalImage:]):
(-[_WKVideoFileUploadItem displayImage]):
(WKFileUploadPanel):
Inherit from UIDocumentPickerDelegate and UIDocumentMenuDelegate. Add
an ivar for the document menu controller.
(-[WKFileUploadPanel dealloc]):
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
If instances of UIDocumentMenuViewController respond to
-_setIgnoreApplicationEntitlementForImport:, meaning we can disable the
assertion that the current app has the iCloud Documents entitlement,
then show the document picker menu. Otherwise, show the current source
selection UI. The runtime check will be removed when a newer UIKit is
available.
(UTIsForMIMETypes):
Return the UTIs for the <input> element's "accept" attribute's MIME
type list.
(-[WKFileUploadPanel _mediaTypesForPickerSourceType:]):
Call UTIsForMIMETypes(). Fall back to available source types for this
picker type.
(-[WKFileUploadPanel _documentPickerMenuMediaTypes]):
Call UTIsForMIMETypes(). Fall back to the all-encompassing
"public.item" UTI.
(-[WKFileUploadPanel _photoLibraryButtonLabel]):
(-[WKFileUploadPanel _cameraButtonLabel]):
Factored out of -_showMediaSourceSelectionSheet. Return the
appropriate label for the camera button, based on whether it can take a
photo or video, or return nil if the camera is not available.
(-[WKFileUploadPanel _showMediaSourceSelectionSheet]):
Changed to use -_cameraButtonLabel and
-_presentForCurrentInterfaceIdiom:.
(-[WKFileUploadPanel _showDocumentPickerMenu]):
Create a UIDocumentMenuViewController, and populate it with options to
open the photo library or take a picture or video. If iCloud Drive or
other document sources are available, they will be added automatically.
(-[WKFileUploadPanel _presentForCurrentInterfaceIdiom:]):
(-[WKFileUploadPanel documentMenu:didPickDocumentPicker:]):
(-[WKFileUploadPanel documentMenuWasCancelled:]):
(-[WKFileUploadPanel documentPicker:didPickDocumentAtURL:]):
(-[WKFileUploadPanel documentPickerWasCancelled:]):
(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):
(-[_WKImageFileUploadItem initWithFilePath:originalImage:]): Deleted.
(-[_WKImageFileUploadItem fileURL]): Deleted.
(-[_WKVideoFileUploadItem initWithFilePath:mediaURL:]): Deleted.
(-[_WKVideoFileUploadItem fileURL]): Deleted.
2015-03-11 Enrica Casucci <enrica@apple.com>
Adopt new API for keyboard event handling.
https://bugs.webkit.org/show_bug.cgi?id=142602
rdar://problem/19966087
Reviewed by Sam Weinig.
Adopts the new API.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didHandleKeyEvent:]):
2015-03-12 Alexey Proskuryakov <ap@apple.com>
testRunner.setAlwaysAcceptCookies does not work with NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=138687
Reviewed by Carlos Garcia Campos.
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): Don't change system-wide
cookie accept policy when in testing mode. Also, update the policy in WebProcesses too,
as we still do some networking there.
* UIProcess/WebProcessPool.h:
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetAlwaysAcceptCookies): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setAlwaysAcceptCookies): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:
Remove WKBundleSetAlwaysAcceptCookies SPI, as WKTR now uses an API in UI process.
2015-03-12 Anders Carlsson <andersca@apple.com>
WKErrorDomain should be declared nonnull
https://bugs.webkit.org/show_bug.cgi?id=142628
Reviewed by Antti Koivisto.
Add WK_ASSUME_NONNULL_BEGIN and WK_ASSUME_NONNULL_END so everything will be implicitly nonnull.
* UIProcess/API/Cocoa/WKError.h:
2015-03-12 Ian Henderson <ian@ianhenderson.org>
PDFs don't snapshot properly in iOS Safari
https://bugs.webkit.org/show_bug.cgi?id=142623
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
If we have a _customContentView, use UIView snapshotting instead of
trying to snapshot the web page.
2015-03-12 Eric Carlson <eric.carlson@apple.com>
[Mac] Update AirPlay handling
https://bugs.webkit.org/show_bug.cgi?id=142541
Unreviewed, respond to post-review comments and add previously reviewed changes
missed by a bungled merge.
* Shared/mac/WebCoreArgumentCodersMac.mm:
* UIProcess/WebMediaPlaybackTargetPickerProxy.cpp:
(WebKit::WebMediaPlaybackTargetPickerProxy::~WebMediaPlaybackTargetPickerProxy):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::createPlaybackTargetPicker):
* UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.h: Added.
* UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm: Added.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/com.apple.WebProcess.sb.in:
2015-03-11 Antti Koivisto <antti@apple.com>
Cache traversal missing large entries
https://bugs.webkit.org/show_bug.cgi?id=142601
Reviewed by Andreas Kling.
When traversing cache entries we only read the header data from disk. This didn't work
correctly for entries larger than the read size.
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::read):
Partial reads only receive one callback with 'done' set to true.
Ensure we actually return data in this case.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::decodeEntryHeader):
Add some logging.
2015-03-11 Eric Carlson <eric.carlson@apple.com>
[Mac] Update AirPlay handling
https://bugs.webkit.org/show_bug.cgi?id=142541
Reviewed by Sam Weinig.
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<AVPlaybackTarget>::encode):
(IPC::ArgumentCoder<AVPlaybackTarget>::decode):
* UIProcess/PageClient.h:
* UIProcess/WebAVPlaybackTargetPickerProxy.cpp: Added.
(WebKit::WebAVPlaybackTargetPickerProxy::WebAVPlaybackTargetPickerProxy):
(WebKit::WebAVPlaybackTargetPickerProxy::~WebAVPlaybackTargetPickerProxy):
(WebKit::WebAVPlaybackTargetPickerProxy::showPlaybackTargetPicker):
(WebKit::WebAVPlaybackTargetPickerProxy::startingMonitoringPlaybackTargets):
(WebKit::WebAVPlaybackTargetPickerProxy::stopMonitoringPlaybackTargets):
* UIProcess/WebAVPlaybackTargetPickerProxy.h: Added.
(WebKit::WebAVPlaybackTargetPickerProxy::Client::~Client):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::devicePickerProxy):
(WebKit::WebPageProxy::showPlaybackTargetPicker):
(WebKit::WebPageProxy::startingMonitoringPlaybackTargets):
(WebKit::WebPageProxy::stopMonitoringPlaybackTargets):
(WebKit::WebPageProxy::didChoosePlaybackTarget):
(WebKit::WebPageProxy::externalOutputDeviceAvailableDidChange):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::createPlaybackTargetPicker):
* UIProcess/mac/WebAVPlaybackTargetPickerProxyMac.h: Added.
* UIProcess/mac/WebAVPlaybackTargetPickerProxyMac.mm: Added.
(WebKit::WebAVPlaybackTargetPickerProxyMac::create):
(WebKit::WebAVPlaybackTargetPickerProxyMac::WebAVPlaybackTargetPickerProxyMac):
(WebKit::WebAVPlaybackTargetPickerProxyMac::~WebAVPlaybackTargetPickerProxyMac):
(WebKit::WebAVPlaybackTargetPickerProxyMac::outputeDeviceAvailabilityChangedTimerFired):
(WebKit::WebAVPlaybackTargetPickerProxyMac::availableDevicesDidChange):
(WebKit::WebAVPlaybackTargetPickerProxyMac::devicePicker):
(WebKit::WebAVPlaybackTargetPickerProxyMac::showPlaybackTargetPicker):
(WebKit::WebAVPlaybackTargetPickerProxyMac::currentDeviceDidChange):
(WebKit::WebAVPlaybackTargetPickerProxyMac::startingMonitoringPlaybackTargets):
(WebKit::WebAVPlaybackTargetPickerProxyMac::stopMonitoringPlaybackTargets):
(-[WebAVOutputDevicePickerMenuControllerHelper initWithCallback:]):
(-[WebAVOutputDevicePickerMenuControllerHelper clearCallback]):
(-[WebAVOutputDevicePickerMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebAVPlaybackTargetPicker.cpp: Added.
(WebKit::WebAVPlaybackTargetPicker::WebAVPlaybackTargetPicker):
(WebKit::WebAVPlaybackTargetPicker::showPlaybackDevicePicker):
(WebKit::WebAVPlaybackTargetPicker::configureWireLessTargetMonitoring):
(WebKit::WebAVPlaybackTargetPicker::addClient):
(WebKit::WebAVPlaybackTargetPicker::removeClient):
(WebKit::WebAVPlaybackTargetPicker::didChoosePlaybackTarget):
(WebKit::WebAVPlaybackTargetPicker::playbackTargetAvailabilityDidChange):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::showPlaybackTargetPicker):
(WebKit::WebChromeClient::startingMonitoringPlaybackTargets):
(WebKit::WebChromeClient::stopMonitoringPlaybackTargets):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::playbackTargetSelected):
(WebKit::WebPage::playbackTargetAvailabilityDidChange):
* WebProcess/com.apple.WebProcess.sb.in:
2015-03-11 Myles C. Maxfield <mmaxfield@apple.com>
Fix the build
Unreviewed.
* Shared/Downloads/mac/DownloadMac.mm:
(WebKit::Download::start):
(WebKit::Download::resume):
2015-03-10 Sam Weinig <sam@webkit.org>
Allow adding a button in input elements for auto fill related functionality
<rdar://problem/19782066>
https://bugs.webkit.org/show_bug.cgi?id=142564
Reviewed by Anders Carlsson.
- Adds new SPI to respond to clicks on the AutoFill button (both bundle and UIProcess).
- Adds new SPI to enable/disable the display of the AutoFill button on an element.
- Adds new SPI to get the bounds of the AutoFill button.
- Updates spelling of AutoFill to be consistent.
* UIProcess/API/APIUIClient.h:
(API::UIClient::didClickAutoFillButton):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/C/WKPageUIClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleAutoFillButtonClick):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
(API::InjectedBundle::PageUIClient::didClickAutoFillButton):
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
(WebKit::InjectedBundlePageUIClient::didClickAutoFillButton):
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::handleAutoFillButtonClick):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:
Pipe the didClickAutoFillButton to the SPI layer.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(-[WKWebProcessPlugInNodeHandle HTMLInputElementIsAutoFilled]):
(-[WKWebProcessPlugInNodeHandle setHTMLInputElementIsAutoFilled:]):
Update for new spelling of AutoFill.
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
(WKBundleNodeHandleGetHTMLInputElementAutoFilled):
(WKBundleNodeHandleSetHTMLInputElementAutoFilled):
Added. Replaces WKBundleNodeHandleGetHTMLInputElementAutofilled/WKBundleNodeHandleSetHTMLInputElementAutofilled
which are now deprecated due to inconsistent spelling of AutoFill.
(WKBundleNodeHandleGetHTMLInputElementAutoFillButtonEnabled):
(WKBundleNodeHandleSetHTMLInputElementAutoFillButtonEnabled):
(WKBundleNodeHandleGetHTMLInputElementAutoFillButtonBounds):
Added.
(WKBundleNodeHandleGetHTMLInputElementAutofilled):
(WKBundleNodeHandleSetHTMLInputElementAutofilled):
Deprecated.
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::getOrCreate):
(WebKit::InjectedBundleNodeHandle::create):
(WebKit::InjectedBundleNodeHandle::InjectedBundleNodeHandle):
(WebKit::InjectedBundleNodeHandle::~InjectedBundleNodeHandle):
(WebKit::InjectedBundleNodeHandle::coreNode):
(WebKit::InjectedBundleNodeHandle::document):
(WebKit::InjectedBundleNodeHandle::elementBounds):
(WebKit::InjectedBundleNodeHandle::renderRect):
(WebKit::InjectedBundleNodeHandle::renderedImage):
(WebKit::InjectedBundleNodeHandle::visibleRange):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementValueForUser):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFilled):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFilled):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFillButtonEnabled):
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFillButtonEnabled):
(WebKit::InjectedBundleNodeHandle::htmlInputElementAutoFillButtonBounds):
(WebKit::InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit):
(WebKit::InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit):
(WebKit::InjectedBundleNodeHandle::isTextField):
(WebKit::InjectedBundleNodeHandle::htmlTableCellElementCellAbove):
(WebKit::InjectedBundleNodeHandle::documentFrame):
(WebKit::InjectedBundleNodeHandle::htmlFrameElementContentFrame):
(WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutofilled): Deleted.
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutofilled): Deleted.
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
Fix-up InjectedBundleNodeHandle to store its underlying Node in a Ref, rather than a RefPtr.
Add helpers to implement the new SPI for WKBundleNodeHandleRef.
2015-03-11 Timothy Horton <timothy_horton@apple.com>
Make it possible to zoom on pages that claim to lay out to device size and then fail to do so
https://bugs.webkit.org/show_bug.cgi?id=142549
Reviewed by Simon Fraser.
* Shared/WebPreferencesDefinitions.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Flip the pref on by default.
2015-03-11 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Do not look for child processes in the UI process binary path
https://bugs.webkit.org/show_bug.cgi?id=135752
Reviewed by Gustavo Noronha Silva.
It's only useful for internal tools and tests, but never when
installed, since we don't install the processes in the bin dir but
in the libexec dir.
* Shared/gtk/ProcessExecutablePathGtk.cpp:
(WebKit::findWebKitProcess): Only look or the executables in the
UI process binary path or WEBKIT_EXEC_PATH for development builds.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(injectedBundleDirectory): Only check
WEBKIT_INJECTED_BUNDLE_PATH env var for development builds.
2015-03-10 Antti Koivisto <antti@apple.com>
Add interface to delete disk cache entries
https://bugs.webkit.org/show_bug.cgi?id=142546
Reviewed by Anders Carlsson.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::remove):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::remove):
Move deletion to a serial queue so we can't create large number of threads.
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation):
(WebKit::NetworkCache::Storage::removeEntry): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::deleteQueue):
2015-03-10 Chris Dumez <cdumez@apple.com>
5 tests fail on Apple Mac WK2 performance bots
https://bugs.webkit.org/show_bug.cgi?id=142485
Reviewed by Andreas Kling.
Only log errors in debug builds if SandboxExtension::createHandle() fails
so that performance tests don't fail because of it. Such error is not
fatal and is expected under certain circumstances. In particular,
SandboxExtension::createHandle() is sometimes called for non-existing
files (e.g. from NetworkResourceLoadParameters::encode()).
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::createHandle):
2015-03-10 Timothy Horton <timothy_horton@apple.com>
Fix the build
* Shared/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::startWithHandle):
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(-[WKCustomProtocolLoader initWithCustomProtocolManagerProxy:customProtocolID:request:connection:]):
2015-03-10 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Contents not shown when entering AC mode unless the window is resized
https://bugs.webkit.org/show_bug.cgi?id=142347
Reviewed by Žan Doberšek.
The problem is once again that we are now creating the redirected
X window in realize method. When entering AC mode we resize the
redirected window to the drawing area size. Since the size hasn't
changed from the drawing area point of view, the web process is
not notified. The WebProcess always uses the window size, instead
of the root layer size, to make sure it's in sync, see the comment
in LayerTreeHostGtk::compositeLayersToContext(). So, we need to
enforce a resize when we change the size of the redirected window
when entering AC mode.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseEnterAcceleratedCompositingMode):
* UIProcess/DrawingAreaProxyImpl.h:
(WebKit::DrawingAreaProxyImpl::forceResize):
2015-03-10 Csaba Osztrogonác <ossy@webkit.org>
[cmake] Handle unused parameter warnings as build errors except in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=142338
Reviewed by Gyuyoung Kim.
* CMakeLists.txt:
2015-03-10 Dan Bernstein <mitz@apple.com>
WebKit2 part of <rdar://problem/20086546> [Cocoa] Add an option to treat certificate chains with SHA1-signed certificates as insecure
https://bugs.webkit.org/show_bug.cgi?id=142461
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]): Initialize
webPageConfiguration.treatsSHA1SignedCertificatesAsInsecure from the WKWebViewConfiguration.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
Added _treatsSHA1SignedCertificatesAsInsecure ivar.
(-[WKWebViewConfiguration copyWithZone:]): Copy _treatsSHA1SignedCertificatesAsInsecure.
(-[WKWebViewConfiguration _treatsSHA1SignedCertificatesAsInsecure]): Added this getter.
(-[WKWebViewConfiguration _setTreatsSHA1SignedCertificatesAsInsecure:]): Added this setter.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Declared new
_treatsSHA1SignedCertificatesAsInsecure property.
* UIProcess/PageLoadState.cpp:
(WebKit::PageLoadState::didCommitLoad): Use new hasInsecureContent parameter to initialize
hasInsecureContent parameter in the uncommitted state.
* UIProcess/PageLoadState.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Initialize new m_treatsSHA1CertificatesAsInsecure
member variable from the WebPageConfiguration.
(WebKit::WebPageProxy::didCommitLoadForFrame): Pass true for the new hasInsecureContent to
PageLoadState::didCommitLoad if we are treating SHA1-signed certificates as insecure and
the certificate info contains a non-root SHA1-signed certificate.
* UIProcess/WebPageProxy.h: Added m_treatsSHA1CertificatesAsInsecure member variable.
2015-03-09 Geoffrey Garen <ggaren@apple.com>
bmalloc: tryFastMalloc shouldn't crash
https://bugs.webkit.org/show_bug.cgi?id=142443
Reviewed by Anders Carlsson.
Part 1: Stop using tryFastRealloc.
* Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::resize): Deleted.
* Shared/ShareableBitmap.h: Removed the resize function because it has
no clients.
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::updateBackingStore): Changed to allocate a new
backing store instead of resizing the old one. This has three advantages:
(1) Might be more memory-efficient, since you don't have to keep the old
one around while allocating the new one.
(2) Avoids the overhead of realloc() copying the contents of the old
backing store even though we only want uninitialized memory.
(3) Makes resize failure consistent with initial allocation failure.
Previously, while initial allocation failure would set the backing store
to null, resize failure would keep the old wrong backing store and then
tell it not to paint. Now, resize failure also sets the backing store to
null.
2015-03-09 Martin Robinson <mrobinson@igalia.com>
[EFL] Move DispatchQueue to WTF
https://bugs.webkit.org/show_bug.cgi?id=142493
Reviewed by Csaba Osztrogonác.
* PlatformEfl.cmake: Remove DispatchQueue from the source list.
2015-03-08 Dean Jackson <dino@apple.com>
[iOS Media] Video buffer progress missing on iPhones
https://bugs.webkit.org/show_bug.cgi?id=142462
Reviewed by Eric Carlson.
Coordinate the SetBufferedTime message between the Web and UI
processes.
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: New message SetBufferedTime.
* WebProcess/ios/WebVideoFullscreenManager.h:
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::setBufferedTime):
2015-03-08 Sam Weinig <sam@webkit.org>
[Content Extensions] Add scaffolding for the WKUserContentExtensionStore
https://bugs.webkit.org/show_bug.cgi?id=142464
Reviewed by Dan Bernstein.
* Shared/API/APIObject.h:
Add a UserContentExtensionStore type and move the UserContentExtension type into the correct section (UIProcess).
* Shared/API/c/WKBase.h:
Add the WKUserContentExtensionStoreRef C-SPI type.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Add allocation support for UserContentExtensionStore (and UserContentExtension while we are there, it will be
needed shortly).
* UIProcess/API/APIUserContentExtensionStore.cpp: Added.
(API::UserContentExtensionStore::UserContentExtensionStore):
(API::UserContentExtensionStore::~UserContentExtensionStore):
* UIProcess/API/APIUserContentExtensionStore.h: Added.
Stub out the UserContentExtensionStore.
* UIProcess/API/C/WKAPICast.h:
Add casting for the UserContentExtensionStore.
* UIProcess/API/C/WKUserContentExtensionStoreRef.cpp: Added.
(WKUserContentExtensionStoreGetTypeID):
* UIProcess/API/C/WKUserContentExtensionStoreRef.h: Added.
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.h: Added.
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm: Added.
(-[_WKUserContentExtensionStore init]):
(-[_WKUserContentExtensionStore dealloc]):
(-[_WKUserContentExtensionStore _apiObject]):
* UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h: Added.
(WebKit::wrapper):
Stub out SPI for the UserContentExtensionStore.
* WebKit2.xcodeproj/project.pbxproj:
* CMakeLists.txt:
Add new files.
2015-03-08 Sam Weinig <sam@webkit.org>
AX: Expose a frame's accessible name through WK2 C SPI
<rdar://problem/19653068>
https://bugs.webkit.org/show_bug.cgi?id=142468
Reviewed by Dan Bernstein.
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
(WKBundleFrameSetAccessibleName):
* WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::setAccessibleName):
* WebProcess/WebPage/WebFrame.h:
Add SPI to set a frame's accessible name. This matches the Legacy WebKit SPI -[WebFrame setAccessibleName:].
2015-03-08 Sam Weinig <sam@webkit.org>
[Content Extensions] Pass compiled content extensions as read-only shared memory rather than copying them
https://bugs.webkit.org/show_bug.cgi?id=142458
Reviewed by Dan Bernstein.
* Shared/WebCompiledContentExtensionData.cpp:
(WebKit::WebCompiledContentExtensionData::encode):
(WebKit::WebCompiledContentExtensionData::decode):
* Shared/WebCompiledContentExtensionData.h:
(WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData):
Store the compiled data as a SharedMemory block with offset/size pairs for the
bytecode and actions. While the bytecode offset is currently always 0, this won't
be the case when we map these in from files due to metadata that will be placed
at the top of the files.
* Shared/WebCompiledContentExtension.h:
* Shared/WebCompiledContentExtension.cpp:
(WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData):
Temporary creation helper. In subsequent patches, this will be removed and replaced
by always passing in shared/mapped data.
(WebKit::WebCompiledContentExtension::create):
(WebKit::WebCompiledContentExtension::WebCompiledContentExtension):
(WebKit::WebCompiledContentExtension::bytecode):
(WebKit::WebCompiledContentExtension::bytecodeLength):
(WebKit::WebCompiledContentExtension::actions):
(WebKit::WebCompiledContentExtension::actionsLength):
Convert to work with the new WebCompiledContentExtension format.
* UIProcess/API/C/WKUserContentFilterRef.cpp:
(WKUserContentFilterCreate):
* UIProcess/API/Cocoa/_WKUserContentFilter.mm:
(-[_WKUserContentFilter initWithName:serializedRules:]):
Switch to using WebCompiledContentExtension::createFromCompiledContentExtensionData().
* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addUserContentExtensions):
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::addUserContentExtension):
Update to pass the WebCompiledContentExtensionData directly to the WebCompiledContentExtension.
2015-03-08 Carlos Garcia Campos <cgarcia@igalia.com>
Remove willDestroyFrame in WKBundlePageLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=142389
Reviewed by Anders Carlsson.
I added willDestroyFrame in r154540 but I realized recently that
it has never actually worked. Adding the callback to
WKBundlePageLoaderClient was the first mistake, since frames are
handled by WebProcess and DidDestroyFrame message is indeed a
WebProcessProxy not a WebPageProxy one. Second mistake was calling
the callback from WebFrameLoaderClient::frameLoaderDestroyed(),
since at that point the frame has already been detached from the
page and so WebFrame::page() always returns nullptr. So, this in
fact dead code and since r180211 nobody is using it.
* WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h:
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkitWebPageCreate): Use verion 6 instead of version 7 of loader client.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::willDestroyFrame): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::frameLoaderDestroyed):
2015-03-06 Sam Weinig <sam@webkit.org>
[Content Extensions] Move compiling of content extensions to the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=142402
Reviewed by Benjamin Poulain.
* Shared/API/APIObject.h:
Rename UserContentFilter type to UserContentExtension to match new unified naming.
* Shared/WebCompiledContentExtension.cpp: Added.
(WebKit::WebCompiledContentExtension::create):
(WebKit::WebCompiledContentExtension::WebCompiledContentExtension):
(WebKit::WebCompiledContentExtension::~WebCompiledContentExtension):
(WebKit::WebCompiledContentExtension::bytecode):
(WebKit::WebCompiledContentExtension::bytecodeLength):
(WebKit::WebCompiledContentExtension::actions):
(WebKit::WebCompiledContentExtension::actionsLength):
* Shared/WebCompiledContentExtension.h: Added.
Add new WebKit2 implementation of CompiledContentExtension. Right now it is the same as the old
WebCore based CompiledContentExtension, but in subsequent patches, it will use shared/file backed
memory.
* Shared/WebCompiledContentExtensionData.cpp: Added.
(WebKit::WebCompiledContentExtensionData::encode):
(WebKit::WebCompiledContentExtensionData::decode):
* Shared/WebCompiledContentExtensionData.h: Added.
Add encodable/decodable holder for the compiled content extension data for use in IPC. Right
now it is doing the naive thing and always copying the data, but in subsequent patches, it will
use shared/file backed memory.
* Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::encode):
(WebKit::WebPageGroupData::decode):
* Shared/WebPageGroupData.h:
Rename member to match new unification on the name userContentExtension. Change the value from
the serialized JSON (as a String) to WebCompiledContentExtensionData.
* UIProcess/API/APIUserContentExtension.cpp: Copied from Source/WebKit2/UIProcess/API/APIUserContentFilter.cpp.
(API::UserContentExtension::UserContentExtension):
(API::UserContentExtension::~UserContentExtension):
(API::UserContentFilter::UserContentFilter): Deleted.
(API::UserContentFilter::~UserContentFilter): Deleted.
* UIProcess/API/APIUserContentExtension.h: Copied from Source/WebKit2/UIProcess/API/APIUserContentFilter.h.
* UIProcess/API/APIUserContentFilter.cpp: Removed.
* UIProcess/API/APIUserContentFilter.h: Removed.
Renamed UserContentFilter to APIUserContentExtension. Updated to store the compiled extension (as a WebCompiledContentExtension)
rather than the serialized JSON.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupAddUserContentFilter):
(WKPageGroupRemoveUserContentFilter):
(WKPageGroupRemoveAllUserContentFilters):
* UIProcess/API/C/WKUserContentControllerRef.cpp:
(WKUserContentControllerAddUserContentFilter):
(WKUserContentControllerRemoveAllUserContentFilters):
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController _addUserContentFilter:]):
(-[WKUserContentController _removeUserContentFilter:]):
(-[WKUserContentController _removeAllUserContentFilters]):
Update for rename of APIUserContentFilter -> UserContentExtension.
* UIProcess/API/C/WKUserContentFilterRef.cpp:
(WKUserContentFilterGetTypeID):
(WKUserContentFilterCreate):
Update for rename of APIUserContentFilter -> UserContentExtension. Also make WKUserContentFilterCreate eagerly
compile rule list to a WebCompiledContentExtensionData.
* UIProcess/API/Cocoa/_WKUserContentFilter.mm:
(-[_WKUserContentFilter initWithName:serializedRules:]):
(-[_WKUserContentFilter dealloc]):
(-[_WKUserContentFilter _apiObject]):
Update for rename of APIUserContentFilter -> UserContentExtension. Also make initWithName:serializedRules: eagerly
compile rule list to a WebCompiledContentExtensionData.
* UIProcess/API/Cocoa/_WKUserContentFilterInternal.h:
(WebKit::wrapper):
Update for rename of APIUserContentFilter -> UserContentExtension.
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserContentExtension):
(WebKit::WebUserContentControllerProxy::removeUserContentExtension):
(WebKit::WebUserContentControllerProxy::removeAllUserContentExtensions):
(WebKit::WebUserContentControllerProxy::addUserContentFilter): Deleted.
(WebKit::WebUserContentControllerProxy::removeUserContentFilter): Deleted.
(WebKit::WebUserContentControllerProxy::removeAllUserContentFilters): Deleted.
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::addUserContentExtension):
(WebKit::WebPageGroup::removeUserContentExtension):
(WebKit::WebPageGroup::removeAllUserContentExtensions):
(WebKit::WebPageGroup::addUserContentFilter): Deleted.
(WebKit::WebPageGroup::removeUserContentFilter): Deleted.
(WebKit::WebPageGroup::removeAllUserContentFilters): Deleted.
* UIProcess/WebPageGroup.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addUserContentExtensions):
(WebKit::WebUserContentController::removeUserContentExtension):
(WebKit::WebUserContentController::removeAllUserContentExtensions):
(WebKit::WebUserContentController::addUserContentFilters): Deleted.
(WebKit::WebUserContentController::removeUserContentFilter): Deleted.
(WebKit::WebUserContentController::removeAllUserContentFilters): Deleted.
* WebProcess/UserContent/WebUserContentController.h:
* WebProcess/UserContent/WebUserContentController.messages.in:
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
(WebKit::WebPageGroupProxy::addUserContentExtension):
(WebKit::WebPageGroupProxy::removeUserContentExtension):
(WebKit::WebPageGroupProxy::removeAllUserContentExtensions):
(WebKit::WebPageGroupProxy::addUserContentFilter): Deleted.
(WebKit::WebPageGroupProxy::removeUserContentFilter): Deleted.
(WebKit::WebPageGroupProxy::removeAllUserContentFilters): Deleted.
* WebProcess/WebPage/WebPageGroupProxy.h:
* WebProcess/WebPage/WebPageGroupProxy.messages.in:
Pipe the compiled extension from the UIProcess to the WebProcess.
2015-03-06 Dean Jackson <dino@apple.com>
Support "plus-lighter" in mix-blend mode
https://bugs.webkit.org/show_bug.cgi?id=142416
<rdar://problem/19993979>
Reviewed by Darin Adler and Sam Weinig.
Output the appropriate blending type when logging.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
2015-03-06 Beth Dakin <bdakin@apple.com>
REGRESSION (r180782): Data Detector popovers are not dismissed on scroll or zoom
https://bugs.webkit.org/show_bug.cgi?id=142371
-and corresponding-
rdar://problem/20059224
Reviewed by Tim Horton.
This patch has the WKImmediateActionController keep track of whether or not it has
an active immediate action. Then we only call into Lookup and DD if the window is
key OR if the WKView’s immediateActionController has an active action.
* UIProcess/API/mac/WKView.mm:
(-[WKView _dismissContentRelativeChildWindows]):
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController initWithPage:view:recognizer:]):
(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController hasActiveImmediateAction]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
2015-03-06 Jeremy Jones <jeremyj@apple.com>
Scroll to make the video element visible when exiting fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=141439
Reviewed by Simon Fraser.
This patch will restore interface state when exiting fullscreen.
Adds preparedToReturnToInline to continue exiting once the interface is updated.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::WebVideoFullscreenManagerProxy::fullscreenMayReturnToInline):
(WebKit::WebVideoFullscreenManagerProxy::preparedToReturnToInline): added.
* WebProcess/ios/WebVideoFullscreenManager.h:
* WebProcess/ios/WebVideoFullscreenManager.messages.in:
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline):
2015-03-06 Antti Koivisto <antti@apple.com>
Rename NetworkCacheStorageCocoa.mm to NetworkCacheStorage.cpp
https://bugs.webkit.org/show_bug.cgi?id=142401
Rubber-stamped by Anders Carlsson.
It is now fully cross-platform.
* NetworkProcess/cache/NetworkCacheStorage.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheStorageCocoa.mm.
(WebKit::NetworkCache::Storage::shrinkIfNeeded):
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2015-03-06 Antti Koivisto <antti@apple.com>
Don't use dispatch_semaphore in NetworkCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=142395
Reviewed by Anders Carlsson.
* NetworkProcess/cache/NetworkCacheIOChannel.h:
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
Add readSync to encapsulate the semaphore.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCache::Storage::traverse):
2015-03-06 Antti Koivisto <antti@apple.com>
Move dispatch_data use behind NetworkCache::Data abstraction
https://bugs.webkit.org/show_bug.cgi?id=142392
Reviewed by Anders Carlsson.
* NetworkProcess/cache/NetworkCacheData.h:
(WebKit::NetworkCache::DispatchPtr::DispatchPtr):
* NetworkProcess/cache/NetworkCacheDataCocoa.mm:
(WebKit::NetworkCache::Data::Data):
(WebKit::NetworkCache::Data::apply):
(WebKit::NetworkCache::Data::subrange):
(WebKit::NetworkCache::concatenate):
(WebKit::NetworkCache::mapFile):
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::read):
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCache::hashData):
(WebKit::NetworkCache::decodeEntryMetaData):
(WebKit::NetworkCache::decodeEntryHeader):
(WebKit::NetworkCache::decodeEntry):
(WebKit::NetworkCache::encodeEntryMetaData):
(WebKit::NetworkCache::encodeEntryHeader):
(WebKit::NetworkCache::Storage::dispatchFullWriteOperation):
(WebKit::NetworkCache::mapFile): Deleted.
2015-03-06 Antti Koivisto <antti@apple.com>
Use WTF abstraction for page size in NetworkCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=142396
Reviewed by Darin Adler.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCache::decodeEntryMetaData):
(WebKit::NetworkCache::Storage::dispatchFullWriteOperation):
2015-03-06 Myles C. Maxfield <mmaxfield@apple.com>
[iOS] SVG fonts are garbled
https://bugs.webkit.org/show_bug.cgi?id=142377
Reviewed by Simon Fraser.
* Configurations/FeatureDefines.xcconfig:
2015-03-06 Zan Dobersek <zdobersek@igalia.com>
Unguarded GTK-specific member and method usage in DrawingAreaImpl
https://bugs.webkit.org/show_bug.cgi?id=142391
Reviewed by Carlos Garcia Campos.
r180924 introduced unguarded use of m_nativeSurfaceHandleForCompositing
and LayerTreeHost::setNativeSurfaceHandleForCompositing() in DrawingAreaImpl.
Definitions for both of these are guarded with USE(TEXTURE_MAPPER_GL) and PLATFORM(GTK),
so their use should be as well.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
2015-03-06 David Kilzer <ddkilzer@apple.com>
REGRESSION (r181140): WebKit2 fails to build on Mavericks buildbot
Work around Xcode dependency tracking issues by making changes
to source files that need to be recompiled.
* NetworkProcess/NetworkProcess.cpp: Update copyright. Include
NetworkCache.h since it didn't appear to be included by
NetworkCacheCoders.h.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm: Update copyright.
2015-03-05 Antti Koivisto <antti@apple.com>
Move disk cache classes to namespace
https://bugs.webkit.org/show_bug.cgi?id=142339
Reviewed by Anders Carlsson.
Move everything to NetworkCache namespace.
2015-03-05 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r180924): ASSERTION FAILED: !from.isEmpty() in WebCore::TransformationMatrix::rectToRect
https://bugs.webkit.org/show_bug.cgi?id=142345
Reviewed by Martin Robinson.
This was caused by r180924 that postpones the creation of the
TextureMapper, which could cause that a layer has not yet a size
when TextureMapper::paint() is called. This patch moves the
creation of the TextureMapper to
LayerTreeHostGtk::setNativeSurfaceHandleForCompositing(), so that
it's created as soon as it's possible to create. This method is
called by the drawing area right after creating the
LayerTreeHostGtk if it already have a handler, or when the handle
is received from the UI process.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize): Remove the
nsureTextureMapper call because at this point the layer context ID
is always 0, so it's impossible to create the TextureMapper.
(WebKit::LayerTreeHostGtk::compositeLayersToContext): Remove the
ensureTextureMapper call from here too, since at this point, if we
have a context, we should also have a TextureMapper. Add an ASSERT
right before using the TextureMapper.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):
Create the TextureMapper here.
(WebKit::LayerTreeHostGtk::ensureTextureMapper): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2015-03-05 Anders Carlsson <andersca@apple.com>
WKWebView Encoder for remote object communication does not implement encodeInt32:forKey:
https://bugs.webkit.org/show_bug.cgi?id=142356
rdar://problem/20058952
Reviewed by Tim Horton.
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(-[WKRemoteObjectEncoder encodeInt32:forKey:]):
(-[WKRemoteObjectDecoder decodeInt32ForKey:]):
2015-03-05 Chris Dumez <cdumez@apple.com>
NetworkCache efficacy logging is using too much CPU
https://bugs.webkit.org/show_bug.cgi?id=142186
<rdar://problem/19632080>
Reviewed by Antti Koivisto.
NetworkCache efficacy logging was using too much CPU mostly due to
database writes. Logging was using ~11.3% of the NetworkProcess'
CPU usage (~9.2% for writes / ~1.3% for reads).
This patch buffers writes requests in memory and only writes them
to disk every 10 seconds. We are thus writing to this less frequently
and writing more at once, in a single SQL transaction. After this
change, efficacy logging only accounts for ~3.5% of the NetworkProcess'
CPU activity (1.5% for writes / 1.2% for reads).
Now that CPU usage is more acceptable, this patch re-enables the
network cache efficicy logging.
* NetworkProcess/cache/NetworkCacheStatistics.h:
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::executeSQLCommand):
(WebKit::executeSQLStatement):
Call step() instead of executeCommand() because:
- The input statement is already prepared.
- step() does not finalize() the statement and thus we caller can
reuse it after calling reset().
(WebKit::NetworkCacheStatistics::NetworkCacheStatistics):
(WebKit::NetworkCacheStatistics::initialize):
(WebKit::NetworkCacheStatistics::bootstrapFromNetworkCache):
(WebKit::NetworkCacheStatistics::recordNotCachingResponse):
(WebKit::NetworkCacheStatistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCacheStatistics::recordRetrievalFailure):
(WebKit::NetworkCacheStatistics::markAsRequested):
(WebKit::NetworkCacheStatistics::writeTimerFired):
(WebKit::NetworkCacheStatistics::queryWasEverRequested):
(WebKit::NetworkCacheStatistics::addHashesToDatabase):
(WebKit::NetworkCacheStatistics::addStoreDecisionsToDatabase):
(WebKit::NetworkCacheStatistics::addHashToDatabase): Deleted.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):
Re-enable the network cache efficacy logging.
2015-03-05 Antti Koivisto <antti@apple.com>
Switch NetworkCacheStorage to WorkQueue abstraction
https://bugs.webkit.org/show_bug.cgi?id=142337
Reviewed by Anders Carlsson.
Don't use dispatch_async directly.
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCacheStorage::ioQueue):
(WebKit::NetworkCacheStorage::backgroundIOQueue):
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::NetworkCacheStorage):
(WebKit::NetworkCacheStorage::initialize):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::dispatchReadOperation):
(WebKit::retrieveFromMemory):
(WebKit::NetworkCacheStorage::traverse):
(WebKit::NetworkCacheStorage::dispatchFullWriteOperation):
(WebKit::NetworkCacheStorage::dispatchHeaderWriteOperation):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
(WebKit::NetworkCacheStorage::deleteOldVersions):
2015-03-05 Lukasz Bialek <l.bialek@samsung.com>
[EFL][WK2] Crash when "Download Linked File" from MiniBrowser context menu is clicked
https://bugs.webkit.org/show_bug.cgi?id=131162
Reviewed by Gyuyoung Kim.
"Download Linked File" crashes because of null-pointer exception of Download Job.
Due to architectural difficulties, easy fix is not possible (EwkView is needed in
DownloadManager to create DownloadJobs and it is only used to notify the client
about download (finished, error, cancel) via smart callback using EwkView (Evas_Object).
Propose a new callbacks which are view independent and detach EFL's DownloadManager
from EwkView. It makes DownloadManagerEFL consistent with WKContextDownload.
Fix the crash and restore download functionality.
* PlatformEfl.cmake:
Enable newly reimplemented tests
* UIProcess/API/efl/EwkViewCallbacks.h:
Remove old callback mechanism
* UIProcess/API/efl/ewk_context.cpp:
(ewk_context_download_callbacks_set):
* UIProcess/API/efl/ewk_context.h:
Declare new callback functions and registration functions
* UIProcess/API/efl/ewk_download_job.cpp:
(EwkDownloadJob::EwkDownloadJob):
(EwkDownloadJob::view): Deleted.
* UIProcess/API/efl/ewk_download_job.h:
* UIProcess/API/efl/ewk_download_job_private.h:
(EwkDownloadJob::create):
Remove EwkView dependency
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_download_job.cpp:
Alter tests to new callback mechanism
* UIProcess/efl/DownloadManagerEfl.cpp:
(WebKit::DownloadManagerEfl::decideDestinationWithSuggestedFilename):
(WebKit::DownloadManagerEfl::didStart):
(WebKit::DownloadManagerEfl::didFail):
(WebKit::DownloadManagerEfl::didCancel):
(WebKit::DownloadManagerEfl::didFinish):
(WebKit::DownloadManagerEfl::DownloadManagerEfl):
(WebKit::DownloadManagerEfl::registerDownloadJob):
(WebKit::DownloadManagerEfl::setCallbacks):
* UIProcess/efl/DownloadManagerEfl.h:
* UIProcess/efl/WebViewEfl.cpp:
(WebKit::WebViewEfl::handleDownloadRequest):
Add support of new callback mechanism
2015-03-05 Michael Catanzaro <mcatanzaro@igalia.com>
[SOUP] Disable RC4
https://bugs.webkit.org/show_bug.cgi?id=140014
Reviewed by Carlos Garcia Campos.
Disallow RC4-based ciphersuites when performing TLS negotiation,
because it is no longer considered secure.
* NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
(main):
* WebProcess/EntryPoint/unix/WebProcessMain.cpp:
(main):
2015-03-04 Yusuke Suzuki <utatane.tea@gmail.com>
Hide Promise with runtime flags under Cocoa JSContext API
https://bugs.webkit.org/show_bug.cgi?id=141965
Reviewed by Filip Pizlo.
Add new JSC runtime flag, PromiseDisabled.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2015-03-04 Beth Dakin <bdakin@apple.com>
Attempted build fix.
* UIProcess/API/Cocoa/WKViewPrivate.h:
2015-03-04 Beth Dakin <bdakin@apple.com>
Message UI process when contentSize changes
https://bugs.webkit.org/show_bug.cgi?id=142294
-and corresponding-
rdar://problem/19963165
Reviewed by Andreas Kling.
This patch un-ifdefs the didChangeContentSize message so that we can use it on Mac
as well.
New private method that subclasses can override when they need to do something
with contentSize changes.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _didChangeContentSize:]):
* UIProcess/PageClient.h:
Un-ifdef.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeContentSize):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didChangeContentSize):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged):
Stubs for other platforms now that the pure-virtual is un-masked.
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didChangeContentSize):
* UIProcess/API/gtk/PageClientImpl.h:
2015-03-04 Antti Koivisto <antti@apple.com>
Factor platform I/O out from NetworkCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=142279
Reviewed by Chris Dumez.
* NetworkProcess/cache/NetworkCacheData.h: Added.
* NetworkProcess/cache/NetworkCacheDataCocoa.mm: Added.
NetworkCacheStorage::Data -> NetworkCacheData
Move to files of its own.
* NetworkProcess/cache/NetworkCacheIOChannel.h: Added.
* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: Added.
Add abstraction for dispatch IO channels.
2015-03-04 Joseph Pecoraro <pecoraro@apple.com>
Remove WK_AVAILABLE and related macros when we cannot determine iOS/Mac version
https://bugs.webkit.org/show_bug.cgi?id=142252
rdar://problem/19983833
Reviewed by David Kilzer.
When mac / ios version was unable to be determined strip the WK_AVAILABLE
and WK_DEPRECATED macros to avoid outputing a broken macro.
* mac/postprocess-framework-headers.sh:
2015-03-04 Debarshi Ray <debarshir@gnome.org>
[GTK] WebView should hold a reference on WebContext because non-default contexts are a reality
https://bugs.webkit.org/show_bug.cgi?id=142225
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewRequestFavicon):
(webkitWebViewWatchForChangesInFavicon):
(webkitWebViewDisconnectFaviconDatabaseSignalHandlers):
(webkitWebViewConstructed):
(webkitWebViewGetProperty):
(webkitWebViewDispose):
(webkitWebViewLoadChanged):
(webkitWebViewLoadFailedWithTLSErrors):
(webkit_web_view_get_context):
(webkit_web_view_download_uri):
2015-03-03 Shivakumar JM <shiva.jm@samsung.com>
Fix build warning in WebKit2/Shared module.
https://bugs.webkit.org/show_bug.cgi?id=142213
Reviewed by Simon Fraser.
Fix build warning by removing argument name from function.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::pathPointCountApplierFunction):
2015-03-03 Andy Estes <aestes@apple.com>
[Content Filtering] Separate unblock handling into its own class
https://bugs.webkit.org/show_bug.cgi?id=142251
Reviewed by Andreas Kling.
Adopted ContentFilterUnblockHandler.
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::decode):
(IPC::ArgumentCoder<ContentFilter>::encode): Deleted.
(IPC::ArgumentCoder<ContentFilter>::decode): Deleted.
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame):
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didStartProvisionalLoad):
(WebKit::WebFrameProxy::contentFilterDidHandleNavigationAction):
* UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::setContentFilterUnblockHandler):
(WebKit::WebFrameProxy::setContentFilterForBlockedLoad): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2015-03-03 Chris Dumez <cdumez@apple.com>
[WK2] Fix memory leak in _getCookieHeadersForTask
https://bugs.webkit.org/show_bug.cgi?id=142245
Reviewed by Alexey Proskuryakov.
Fix memory leak in _getCookieHeadersForTask. We are leaking the CFDictionary
returned by webKitCookieStorageCopyRequestHeaderFieldsForURL().
This patch addresses the issue by storing the return CFDictionary in a
RetainPtr<CFDictionaryRef>.
* Shared/mac/CookieStorageShim.mm:
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
2015-03-03 Enrica Casucci <enrica@apple.com>
Incomplete dictation results in text fields in a web page.
https://bugs.webkit.org/show_bug.cgi?id=142240
rdar://problem/19953432
Reviewed by Tim Horton.
The empty stub for insertDictationResult:withCorrectionIdentifier
must be removed. This way UIKit will call insertText and do the right thing.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView insertDictationResult:withCorrectionIdentifier:]): Deleted.
2015-03-03 Dean Jackson <dino@apple.com>
Controls panel should have system blurry background
https://bugs.webkit.org/show_bug.cgi?id=142154
<rdar://problem/20000964>
Reviewed by Simon Fraser.
In order to replicate the system style of media controls
on OS X and iOS, we need to expose a special -webkit-appearance.
This patch adds the new property value, and implements
the iOS part of the appearance, which is a blurry shaded
background.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext): Add entries for
the new layer types, even though they are not correct yet.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::updateCustomAppearance):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties): UIBackdropViews
have a defined hierarchy that we don't create. We need to make sure we add our
children to the right subview.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::description): Logging.
* UIProcess/ios/RemoteLayerTreeHostIOS.mm: Rename existing WKBackdropView
to WKSimpleBackdropView, and add a new WKBackdropView that inherits
from UIBackdropView.
(-[WKBackdropView hitTest:withEvent:]):
(-[WKBackdropView description]):
(WebKit::RemoteLayerTreeHost::createLayer): Handle the new LayerTypes.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
2015-03-03 Chris Dumez <cdumez@apple.com>
Access ApplicationCacheStorage global instance via singleton() static member function
https://bugs.webkit.org/show_bug.cgi?id=142239
Reviewed by Anders Carlsson.
Access ApplicationCacheStorage global instance via singleton() static
member function as per WebKit coding style.
2015-03-03 Joseph Pecoraro <pecoraro@apple.com>
Build Fix: Add fall back handling in postprocess script for missing/unknown platform name.
Rubber-stamped by David Kilzer.
* mac/postprocess-framework-headers.sh:
2015-03-03 Enrica Casucci <enrica@apple.com>
Build fix for iOS.
Unreviewed.
* UIProcess/ios/WKContentViewInteraction.mm: Adding forward declaration.
2015-03-03 Antti Koivisto <antti@apple.com>
Include key to NetworkCacheStorage::Entry
https://bugs.webkit.org/show_bug.cgi?id=142215
Reviewed by Chris Dumez.
This simplified code. The key is saved as part of the entry so it makes logical sense too.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::makeCacheKey):
(WebKit::encodeStorageEntry):
(WebKit::NetworkCache::retrieve):
(WebKit::NetworkCache::store):
(WebKit::NetworkCache::update):
(WebKit::NetworkCache::traverse):
(WebKit::entryAsJSON):
(WebKit::NetworkCache::dumpContentsToFile):
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCacheKey::operator=):
* NetworkProcess/cache/NetworkCacheKey.h:
(WebKit::NetworkCacheKey::isNull):
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::decodeEntry):
(WebKit::encodeEntryHeader):
(WebKit::retrieveFromMemory):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
(WebKit::NetworkCacheStorage::traverse):
(WebKit::NetworkCacheStorage::dispatchPendingWriteOperations):
(WebKit::NetworkCacheStorage::dispatchFullWriteOperation):
(WebKit::NetworkCacheStorage::dispatchHeaderWriteOperation):
2015-03-03 Antti Koivisto <antti@apple.com>
Cache shrink leaves behind empty partition directories
https://bugs.webkit.org/show_bug.cgi?id=142217
Reviewed by Andreas Kling.
* NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
(WebKit::traverseCacheFiles):
No need for std::function.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
After shrink traverse through the partition directories and try to delete them.
System knows if they are actually empty.
2015-03-03 Anders Carlsson <andersca@apple.com>
Use the correct display name for website data for local files
https://bugs.webkit.org/show_bug.cgi?id=142228
Reviewed by Dan Bernstein.
* UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(displayNameForLocalFiles):
Add new helper function.
(WebKit::WebsiteDataRecord::displayNameForCookieHostName):
Check if the hostname is kCFHTTPCookieLocalFileDomain.
(WebKit::WebsiteDataRecord::displayNameForOrigin):
Handle file URLs as well.
2015-03-03 Enrica Casucci <enrica@apple.com>
Fixed typo in platform guard in http://trac.webkit.org/changeset/180939.
Unreviewed.
* UIProcess/ios/WKContentViewInteraction.mm:
2015-03-03 Enrica Casucci <enrica@apple.com>
Adopt new API for keyboard interaction.
https://bugs.webkit.org/show_bug.cgi?id=142201
rdar://problem/19924949
Reviewed by Joseph Pecoraro.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView inputAssistantItem]):
(-[WKContentView _inputAssistantItem]):
2015-03-03 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r177075): WebProcess crashes when entering accelerating compositing mode before the WebView is realized
https://bugs.webkit.org/show_bug.cgi?id=142079
Reviewed by Žan Doberšek.
The problem is that the texture mapper and native window handler
are initialized when the LayerTreeHost is initialized, assuming
the UI process has already sent the native window handler to the
web process, but that doesn't always happen since we moved the
redirected window creation to realize in r177075.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::nativeSurfaceHandleForCompositing): Deleted.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode): Call
LayerTreeHost::setNativeSurfaceHandleForCompositing if we
already have a native window handle at this point.
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing):
Call LayerTreeHost::setNativeSurfaceHandleForCompositing also when
not using threaded compositing.
* WebProcess/WebPage/LayerTreeHost.h:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::makeContextCurrent): Helper function to
ensure a context and making it current.
(WebKit::LayerTreeHostGtk::ensureTextureMapper): Ensure a texture
is created for the current context.
(WebKit::LayerTreeHostGtk::initialize): Use makeContextCurrent()
and ensureTextureMapper(), and remove the LayerTreeContext
initialization since that's is now always initialized in
setNativeSurfaceHandleForCompositing().
(WebKit::LayerTreeHostGtk::compositeLayersToContext): Use
makeContextCurrent() helper function and also call
ensureTextureMapper() just in case the texture could not be
created during initialization because the native window handle was
not yet available.
(WebKit::LayerTreeHostGtk::flushAndRenderLayers): Use makeContextCurrent().
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):
Initialize the LayerTreeContext.
(WebKit::LayerTreeHostGtk::glContext): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2015-03-02 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[WK2] Remove unnecessary create() factory functions.
https://bugs.webkit.org/show_bug.cgi?id=142161
Reviewed by Chris Dumez.
We can replace some create() factory functions with std::make_unique(). Because
it just returns new instance. Even some of those functions have used std::unique_ptr<>
instead of std::make_unique<>. Fixed all.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h:
(WebKit::SQLiteIDBTransaction::create): Deleted.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::establishTransaction):
* Platform/efl/DispatchQueueWorkItemEfl.h:
(WorkItem::dispatch):
(WorkItem::create): Deleted.
* UIProcess/API/gtk/PageClientImpl.h:
(WebKit::PageClientImpl::create): Deleted.
* UIProcess/API/gtk/WebKitTextChecker.h:
(WebKitTextChecker::create): Deleted.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseConstructed):
2015-03-02 Brady Eidson <beidson@apple.com>
Lots of: ERROR: Unhandled web process message WebPageGroupProxy:RemoveAllUserContentFilters
https://bugs.webkit.org/show_bug.cgi?id=142155
Reviewed by Simon Fraser.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessage): Return after handling WebPageGroupProxy messages
instead of logging an error.
2015-03-02 Antti Koivisto <antti@apple.com>
Add way to dump cache meta data to file
https://bugs.webkit.org/show_bug.cgi?id=142183
Add a missing return so we don't try to decode a null entry.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::dumpContentsToFile):
2015-03-02 Anders Carlsson <andersca@apple.com>
Return disk cache entries from the new disk cache
https://bugs.webkit.org/show_bug.cgi?id=142190
Reviewed by Antti Koivisto.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
Call NetworkCache::traverse() to get all the cache entries, unique their origins and pass them back with the completion handler.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::traverse):
New helper function that traverses network cache entries.
* NetworkProcess/cache/NetworkCache.h:
2015-03-02 Antti Koivisto <antti@apple.com>
Add way to dump cache meta data to file
https://bugs.webkit.org/show_bug.cgi?id=142183
Reviewed by Andreas Kling.
Dump goes to WebKitCache/dump.json. On OSX it can be triggered with
notifyutil -p com.apple.WebKit.Cache.dump
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::initialize):
(WebKit::NetworkCache::dumpFilePath):
(WebKit::entryAsJSON):
(WebKit::NetworkCache::dumpContentsToFile):
(WebKit::NetworkCache::clear):
Also clear any dumps.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCacheStorage::baseDirectoryPath):
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::fileNameForKey):
(WebKit::filePathForKey):
(WebKit::openFile):
(WebKit::openFileForKey):
(WebKit::decodeEntryHeader):
Separate header decoding.
(WebKit::decodeEntry):
(WebKit::NetworkCacheStorage::traverse):
Add asynchronous cache traversal inteface.
2015-03-02 Anders Carlsson <andersca@apple.com>
WebsiteDataStore should handle deleting cookies
https://bugs.webkit.org/show_bug.cgi?id=142185
Reviewed by Beth Dakin.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
When asked to delete cookies, do so.
* NetworkProcess/NetworkProcess.h:
Update the deleteWebsiteDataForOrigins signature.
* NetworkProcess/NetworkProcess.messages.in:
Add cookieHostNames to DeleteWebsiteDataForOrigins.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
* UIProcess/Network/NetworkProcessProxy.h:
Update to take a vector of cookie host names.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
Figure out if we need to ask the network process to delete data.
2015-03-02 Anders Carlsson <andersca@apple.com>
WebsiteDataStore should support getting cookie host names
https://bugs.webkit.org/show_bug.cgi?id=142178
Reviewed by Dan Bernstein.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
Assert that we're destroyed from the main thread since we end up copying the website data struct.
* Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::encode):
(WebKit::WebsiteData::decode):
* Shared/WebsiteData/WebsiteData.h:
Add a hostnamesWithCookies member.
* UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::displayNameForCookieHostName):
Add a new function that will return the display name for a cookie host name.
(WebKit::WebsiteDataRecord::addCookieHostName):
* UIProcess/WebsiteData/WebsiteDataRecord.h:
Add a hash set of cookie host names.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
Create data records for each host name with cookies.
2015-03-02 Jer Noble <jer.noble@apple.com>
[WK2][Mac] WebPageProxy::supressVisibilityUpdates() should suppress visibility updates.
https://bugs.webkit.org/show_bug.cgi?id=141907
Reviewed by Tim Horton.
At some point, the window/view/page visibility update code was refactored such that setting
WebPageProxy::setSuppressVisibilityUpdate() no longer suppressed visibility updates. This causes
full screen animations to become "flashy" when moving the WebView between the regular and full
screen window, as a HTMLMediaElement in the full screen animation will receive a "!visible"
notification and disconnect its rendering pipeline.
In WebPageProxy::viewStateDidChange(), respect m_suppressVisibilityUpdates and bail out early
if set. In WebPageProxy::setSuppressVisibilityUpdates(), trigger an explicit update after
clearing m_suppressVisibilityUpdates.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setSuppressVisibilityUpdates):
(WebKit::WebPageProxy::viewStateDidChange):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::setSuppressVisibilityUpdates): Deleted.
2015-03-02 Jer Noble <jer.noble@apple.com>
[WK1][WK2][Mac] Fullscreen animation is incorrect when page is scaled.
https://bugs.webkit.org/show_bug.cgi?id=142121
Reviewed by Simon Fraser.
Change the order of operations when entering or exiting fullscreen. Change the page scale to
1 before entering, so the final screen rect takes that scale into account, and vice-versa on
exiting.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController exitFullScreen]):
2015-03-01 Simon Fraser <simon.fraser@apple.com>
Make clip-path work on <video>, <canvas> etc.
https://bugs.webkit.org/show_bug.cgi?id=138684
Reviewed by Darin Adler.
Support encode/decode for WebCore Path objects, which is done by traversing
the path.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::pathPointCountApplierFunction):
(IPC::pathEncodeApplierFunction):
(IPC::ArgumentCoder<Path>::encode):
(IPC::ArgumentCoder<Path>::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::applyPropertiesToLayer): Actually apply the path and wind rule to the shape layer.
* Shared/mac/RemoteLayerTreeTransaction.h: Include path and wind rule in the layer properties.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode): Encode shape and wind rule.
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): Decode shape and wind rule.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::shapePath):
(WebKit::PlatformCALayerRemote::setShapePath):
(WebKit::PlatformCALayerRemote::shapeWindRule):
(WebKit::PlatformCALayerRemote::setShapeWindRule):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2015-03-01 Chris Dumez <cdumez@apple.com>
Make NotificationCenter / Notification suspendable
https://bugs.webkit.org/show_bug.cgi?id=142117
<rdar://problem/19923085>
Reviewed by Andreas Kling.
Provide implementation for NotificationClient::hasPendingPermissionRequests().
* WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
(WebKit::NotificationPermissionRequestManager::hasPendingPermissionRequests):
* WebProcess/Notifications/NotificationPermissionRequestManager.h:
* WebProcess/WebCoreSupport/WebNotificationClient.cpp:
(WebKit::WebNotificationClient::hasPendingPermissionRequests):
* WebProcess/WebCoreSupport/WebNotificationClient.h:
2015-03-01 Antti Koivisto <antti@apple.com>
Enable new disk cache on iOS
https://bugs.webkit.org/show_bug.cgi?id=142148
Reviewed by Sam Weinig.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
iOS build fix.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):
Disable the efficacy logging by default for now. It has significant performance impact.
* config.h:
Enable it.
2015-02-28 Anders Carlsson <andersca@apple.com>
WebsiteDataStore should handle fetching and deleting local storage data
https://bugs.webkit.org/show_bug.cgi?id=142137
Reviewed by Sam Weinig.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::deleteEntriesForOrigins):
Add a new function that deletes entries from multiple origins.
* UIProcess/Storage/StorageManager.h:
Add new members.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
Fetch local storage data as well.
(WebKit::WebsiteDataStore::removeData):
Delete local storage data as well.
2015-02-28 Anders Carlsson <andersca@apple.com>
Fetch cache origins from the network process
https://bugs.webkit.org/show_bug.cgi?id=142135
Reviewed by Dan Bernstein.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::cfURLCacheOrigins):
Add a new helper function that returns a vector of CFURL cache origins.
(WebKit::fetchDiskCacheOrigins):
Fetch the disk cache origins and pass them along to the completion handler. Currently we don't handle the new disk cache.
(WebKit::NetworkProcess::fetchWebsiteData):
Create a callback aggregator and fetch disk cache origins if we're asked for it.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeNetworkProcessAccessTypeForDataFetch):
New helper function that computes if we need to launch the network process in order to fetch data.
(WebKit::WebsiteDataStore::fetchData):
Fetch website data from the network process as well.
2015-02-28 Anders Carlsson <andersca@apple.com>
Simplify WebResourceCacheManagerCFNet.mm code
https://bugs.webkit.org/show_bug.cgi?id=142134
Reviewed by Dan Bernstein.
- ENABLE(CACHE_PARTITIONING) is always true on Mac and iOS, so remove those #ifdefs.
- Make cfURLCacheHostNamesWithCallback and clearCFURLCacheForHostNames public
so they can be used by the new WebsiteDataStore code in an upcoming patch.
- Change cfURLCacheHostNamesWithCallback to take an std::function instead of a block.
* WebProcess/ResourceCache/WebResourceCacheManager.cpp:
(WebKit::WebResourceCacheManager::getCacheOrigins):
* WebProcess/ResourceCache/WebResourceCacheManager.h:
* WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.mm:
(WebKit::partitionName):
(WebKit::WebResourceCacheManager::cfURLCacheHostNamesWithCallback):
(WebKit::WebResourceCacheManager::clearCFURLCacheForHostNames):
(WebKit::WebResourceCacheManager::cfURLCacheHostNames): Deleted.
2015-02-28 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r180804.
https://bugs.webkit.org/show_bug.cgi?id=142131
Broke nightlies (Requested by ap on #webkit).
Reverted changeset:
"[WK2] Drop legacy WKBundlePageDiagnosticLoggingClient API"
https://bugs.webkit.org/show_bug.cgi?id=141176
http://trac.webkit.org/changeset/180804
2015-02-27 Hunseop Jeong <hs85.jeong@samsung.com>
[EFL][GTK] Fix build break after r180790,180798
https://bugs.webkit.org/show_bug.cgi?id=142127
Reviewed by Gyuyoung Kim.
* CMakeLists.txt:
2015-02-27 Chris Dumez <cdumez@apple.com>
[WK2] Drop legacy WKBundlePageDiagnosticLoggingClient API
https://bugs.webkit.org/show_bug.cgi?id=141176
Reviewed by Sam Weinig.
Drop legacy WKBundlePageDiagnosticLoggingClient WK2 API as we are now
exposing this functionality via WKPageDiagnosticLoggingClient.h on
UIProcess side. The client-side has already been ported over.
* CMakeLists.txt:
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI): Deleted.
(WebKit::toDiagnosticLoggingResultType): Deleted.
* UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI):
* UIProcess/API/C/WKDiagnosticLoggingResultType.h: Renamed from Source/WebKit2/Shared/API/c/WKDiagnosticLoggingResultType.h.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetDiagnosticLoggingClient): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h: Removed.
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Removed.
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Removed.
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::close):
(WebKit::WebPage::initializeInjectedBundleDiagnosticLoggingClient): Deleted.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::injectedBundleDiagnosticLoggingClient): Deleted.
2015-02-27 Anders Carlsson <andersca@apple.com>
Rename WebResourceCacheManagerCFNet.cpp to WebResourceCacheManagerCFNet.mm
Rubber-stamped by Dan Bernstein.
This will let us use lambda to block conversion in a subsequent patch.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.mm: Renamed from Source/WebKit2/WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp.
2015-02-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r180203 and r180210.
https://bugs.webkit.org/show_bug.cgi?id=142116
broke process suspension and tile map (Requested by thorton on
#webkit).
Reverted changesets:
"Adopt CAMachPort-as-layer-contents"
https://bugs.webkit.org/show_bug.cgi?id=141687
http://trac.webkit.org/changeset/180203
"Fix the !USE(IOSURFACE) build"
http://trac.webkit.org/changeset/180210
2015-02-27 Sam Weinig <sam@webkit.org>
Add WebKit2 SPI to create a DOM File object
https://bugs.webkit.org/show_bug.cgi?id=142109
Reviewed by Tim Horton.
Add a new handle type for exposing a DOM File object to script. Follow
the pattern of WKBundleNodeHandleRef and WKBundleRangeHandleRef with the
new class WKBundleFileHandleRef. It can be created for a specific path,
and then the JS wrapper can be obtained via WKBundleFrameGetJavaScriptWrapperForFileForWorld.
* Shared/API/APIObject.h:
* Shared/API/c/WKBase.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
* WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.cpp: Added.
(WKBundleFileHandleGetTypeID):
(WKBundleFileHandleCreateWithPath):
* WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h: Added.
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
(WKBundleFrameGetJavaScriptWrapperForFileForWorld):
* WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
* WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.cpp: Added.
(WebKit::domHandleCache):
(WebKit::InjectedBundleFileHandle::create):
(WebKit::InjectedBundleFileHandle::getOrCreate):
(WebKit::InjectedBundleFileHandle::InjectedBundleFileHandle):
(WebKit::InjectedBundleFileHandle::~InjectedBundleFileHandle):
(WebKit::InjectedBundleFileHandle::coreFile):
* WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.h: Added.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::jsWrapperForWorld):
* WebProcess/WebPage/WebFrame.h:
2015-02-27 Beth Dakin <bdakin@apple.com>
Lookup panel dismisses when pages are loading in other tabs/windows
https://bugs.webkit.org/show_bug.cgi?id=142104
-and corresponding-
rdar://problem/19882137
Reviewed by Tim Horton.
Until rdar://problem/13875766 is resolved, we should only call into Lookup and
DataDetectors for key windows.
* UIProcess/API/mac/WKView.mm:
(-[WKView _dismissContentRelativeChildWindows]):
2015-02-27 Anders Carlsson <andersca@apple.com>
Add infrastructure for handling website data in the network process
https://bugs.webkit.org/show_bug.cgi?id=142092
Reviewed by Andreas Kling.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
Send back "Did" messages without actually doing anything for now.
* NetworkProcess/NetworkProcess.h:
Add new members.
* NetworkProcess/NetworkProcess.messages.in:
Add FetchWebsiteData and DeleteWebsiteDataForOrigins messages.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
Assert that all maps are empty.
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
Add callbacks and send fetch and delete messages respectively.
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
Make sure to invoke all callbacks.
(WebKit::NetworkProcessProxy::didFetchWebsiteData):
Find the callback and invoke it.
(WebKit::NetworkProcessProxy::didDeleteWebsiteDataForOrigins):
Ditto.
* UIProcess/Network/NetworkProcessProxy.h:
Add new members.
* UIProcess/Network/NetworkProcessProxy.messages.in:
Add DidFetchWebsiteData and DidDeleteWebsiteDataForOrigins messages.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionDidClose):
Just pass an empty WebsiteData object.
2015-02-26 Enrica Casucci <enrica@apple.com>
[WK2] REGRESSION(r180465): WebKit::WebPage::editorState() triggers a layout.
https://bugs.webkit.org/show_bug.cgi?id=142015
Reviewed by Alexey Proskuryakov.
We no longer compute the font information at selection
when we update the editor state.
Instead, we request the font information only when the selection
changes and the font panel is visible.
I added an observer to be notified of the font panel visibility
changes to update NSFontManager to reflect the font at the
current selection.
* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState):
* UIProcess/API/mac/WKView.mm:
(-[WKView updateFontPanelIfNeeded]):
(-[WKView _selectionChanged]):
(-[WKView addWindowObserversForWindow:]):
(-[WKView removeWindowObservers]):
(-[WKView observeValueForKeyPath:ofObject:change:context:]):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::fontAtSelection):
(WebKit::WebPageProxy::fontAtSelectionCallback):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformEditorState):
(WebKit::WebPage::fontAtSelection):
2015-02-27 Brady Eidson <beidson@apple.com>
Add API to remove a single content filter.
<rdar://problem/19977764> and https://bugs.webkit.org/show_bug.cgi?id=142088
Reviewed by Sam Weinig.
* Shared/WebPageGroupData.h:
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupRemoveUserContentFilter):
* UIProcess/API/C/WKPageGroup.h:
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController _removeUserContentFilter:]):
* UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserContentFilter):
(WebKit::WebUserContentControllerProxy::removeUserContentFilter):
(WebKit::WebUserContentControllerProxy::removeAllUserContentFilters):
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::addUserContentFilter):
(WebKit::WebPageGroup::removeUserContentFilter):
* UIProcess/WebPageGroup.h:
* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::removeUserContentFilter):
* WebProcess/UserContent/WebUserContentController.h:
* WebProcess/UserContent/WebUserContentController.messages.in:
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
(WebKit::WebPageGroupProxy::removeUserContentFilter):
* WebProcess/WebPage/WebPageGroupProxy.h:
* WebProcess/WebPage/WebPageGroupProxy.messages.in:
2015-02-26 Anders Carlsson <andersca@apple.com>
Add API to remove all website data for the given data records
https://bugs.webkit.org/show_bug.cgi?id=142060
Reviewed by Beth Dakin.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
Add new method declaration.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWebsiteDataRecords):
Add a helper function that converts an NSArray of _WKWebsiteDataRecords to a Vector of WebsiteDataRecords.
(-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
Call through to the underlying WebsiteDataStore.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
Figure out which processes to call deleteWebsiteDataForOrigins for and do so. Add a callback aggregator so we can
call the completion handler at the right time.
* UIProcess/WebsiteData/WebsiteDataStore.h:
Add new members.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::deleteWebsiteDataForOrigins):
Use the newly added MemoryCache member function to delete all resources matching the set of origins.
2015-02-26 Chris Dumez <cdumez@apple.com>
Rename DatabaseManager::manager() to DatabaseManager::singleton()
https://bugs.webkit.org/show_bug.cgi?id=142054
Reviewed by Ryosuke Niwa.
Rename DatabaseManager::manager() to DatabaseManager::singleton() as
per coding style and use WTF::NeverDestroyed.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota):
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
(WebKit::WebDatabaseManager::initialize):
(WebKit::WebDatabaseManager::getDatabasesByOrigin):
(WebKit::WebDatabaseManager::getDatabaseOrigins):
(WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
(WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
(WebKit::WebDatabaseManager::deleteAllDatabases):
(WebKit::WebDatabaseManager::setQuotaForOrigin):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2015-02-26 Myles C. Maxfield <mmaxfield@apple.com>
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939
Reviewed by Andreas Kling.
* Configurations/FeatureDefines.xcconfig:
2015-02-26 Brady Eidson <beidson@apple.com>
Make WKPageGroupRemoveAllUserContentFilters actually remove all user content filters
https://bugs.webkit.org/show_bug.cgi?id=142047
Reviewed by Geoff Garen.
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupRemoveAllUserContentFilters): Remove all content filters instead of removing all user scripts.
2015-02-25 Anders Carlsson <andersca@apple.com>
Add (unused for now) code to delete website data for a set of origins
https://bugs.webkit.org/show_bug.cgi?id=142019
Reviewed by Beth Dakin.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy):
Assert that there are no pending callbacks.
(WebKit::WebProcessProxy::connectionDidClose):
Invoke all the didDeleteWebsiteDataForOrigins callbacks.
(WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins):
Grab the didDeleteWebsiteDataForOrigins and invoke it.
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
Add the pending callback and send a DeleteWebsiteDataForOrigins to the web process.
* UIProcess/WebProcessProxy.h:
Add new members.
* UIProcess/WebProcessProxy.messages.in:
Add a DidDeleteWebsiteDataForOrigins message.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::deleteWebsiteDataForOrigins):
For now, just send back a DidDeleteWebsiteDataForOrigins message.
* WebProcess/WebProcess.h:
Add new members.
* WebProcess/WebProcess.messages.in:
Add a DeleteWebsiteDataForOrigins message.
2015-02-25 Shivakumar JM <shiva.jm@samsung.com>
Fix build warning in WebKit2/UIProcess module.
https://bugs.webkit.org/show_bug.cgi?id=142014
Reviewed by Anders Carlsson.
Fix build warning by using UNUSED_PARAM macro.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeWebProcessAccessTypeForDataFetch):
2015-02-24 Simon Fraser <simon.fraser@apple.com>
Clarify some resizing terminology in ScrollView/FrameView
https://bugs.webkit.org/show_bug.cgi?id=141996
Reviewed by Zalan Bujtas.
ScrollableArea/ScrollView/FrameView had some confusing terminology around
contentsResized/visibleContentsResized/fixedLayoutSizeChanged.
Clarify this by distinguishing between:
1. Available size changes because of
i) non-overlay scrollbar presence
ii) ScrollableArea frame change
2. Removing fixedLayoutSizeChanged() and just treating it like an
available size change.
contentsResized() is relegated to simply being a hook that allows Mac to
flash overlay scrollbars.
The confusingly named visibleContentsResized() is now updateContentsSize(),
and is the way that a ScrollableArea tells its subclasss that it should recompute
the size of the contents (i.e. do a layout).
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::scrollbarStyleChanged): Call the base class method,
which takes care of
2015-02-24 Simon Fraser <simon.fraser@apple.com>
Use an enum for scrollbar style
https://bugs.webkit.org/show_bug.cgi?id=141985
Reviewed by Beth Dakin.
Switch to an enum class for the scrollbar style (normal or overlay).
Sadly it still has to be passed as an int across the process boundary.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::recommendedScrollbarStyleDidChange):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::scrollbarStyleChanged):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::recommendedScrollbarStyleDidChange):
* WebProcess/WebCoreSupport/WebChromeClient.h:
2015-02-24 Chris Dumez <cdumez@apple.com>
[Mac][WK2] ASSERTION FAILED: m_sendPort in IPC::Connection::open()
https://bugs.webkit.org/show_bug.cgi?id=141934
Reviewed by Darin Adler.
Speculative fix for "ASSERTION FAILED: m_sendPort" in
IPC::Connection::open(). This assertion seems to indicate we ended
up in IPC::Connection::open() with MACH_PORT_NULL as port.
I found that in XPCServiceInitializerDelegate::getConnectionIdentifier()
we return true unconditionally, even though
xpc_dictionary_copy_mach_send() can return MACH_PORT_NULL. This patch
updates this method to add a check for MACH_PORT_NULL and return false
in this case.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getConnectionIdentifier):
2015-02-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r180599.
https://bugs.webkit.org/show_bug.cgi?id=141998
Lots of new test failures (Requested by smfr on #webkit).
Reverted changeset:
"Parsing support for -webkit-trailing-word"
https://bugs.webkit.org/show_bug.cgi?id=141939
http://trac.webkit.org/changeset/180599
2015-02-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Fix build break on EFL and GTK port since r180585.
https://bugs.webkit.org/show_bug.cgi?id=141994
Reviewed by Joseph Pecoraro.
* UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::displayNameForOrigin):
* UIProcess/WebsiteData/WebsiteDataRecord.h:
(WebKit::WebsiteDataRecord::WebsiteDataRecord):
2015-02-24 Myles C. Maxfield <mmaxfield@apple.com>
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939
Reviewed by Andreas Kling.
* Configurations/FeatureDefines.xcconfig:
2015-02-24 Csaba Osztrogonác <ossy@webkit.org>
Buildfix after r180585.
* CMakeLists.txt:
2015-02-24 Anders Carlsson <andersca@apple.com>
Pass _WKWebsiteDataRecord objects to the fetchData completion handler
https://bugs.webkit.org/show_bug.cgi?id=141984
Reviewed by Andreas Kling.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Create _WKWebsiteDataRecord objects for WebsiteDataRecord API objects.
* UIProcess/API/APIWebsiteDataRecord.h:
Add WebsiteDataRecord getter.
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
Add displayName and dataTypes properties.
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm:
(dataTypesToString):
Helper function to convert dataTypes bit-fields to strings.
(-[_WKWebsiteDataRecord description]):
Include the display name and data types in the description.
(-[_WKWebsiteDataRecord displayName]):
Return the display name.
(-[_WKWebsiteDataRecord dataTypes]):
Return the data types.
* UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataTypes):
Move this here from _WKWebsiteDataStore.mm.
(WebKit::toWKWebsiteDataTypes):
Add new function to convert WebsiteDataTypes to WKWebsiteDataTypes.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
Qualify toWebsiteDataTypes calls.
* UIProcess/WebsiteData/WebsiteDataRecord.cpp: Added.
(WebKit::WebsiteDataRecord::displayNameForOrigin):
New helper that returns a display name given an origin.
(WebKit::WebsiteDataRecord::add):
Add the origin as well as the type.
* UIProcess/WebsiteData/WebsiteDataRecord.h:
Add new members.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
Loop through the entries and add them to the m_websiteDataRecords hash map, which
is keyed off of the display name. Pass the m_websiteDataRecords values to the completion handler.
* WebKit2.xcodeproj/project.pbxproj:
2015-02-24 Csaba Osztrogonác <ossy@webkit.org>
One more buildfix after r180575.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionDidClose):
2015-02-24 Csaba Osztrogonác <ossy@webkit.org>
URTBF after 180575.
* CMakeLists.txt:
2015-02-24 Anders Carlsson <andersca@apple.com>
Implement more of the data fetching API
https://bugs.webkit.org/show_bug.cgi?id=141975
Reviewed by Andreas Kling.
* Shared/WebsiteData/WebsiteData.cpp: Added.
(WebKit::WebsiteData::Entry::encode):
(WebKit::WebsiteData::Entry::decode):
(WebKit::WebsiteData::encode):
(WebKit::WebsiteData::decode):
* Shared/WebsiteData/WebsiteData.h: Added.
Add a new WebsiteData class that will store website data. Currently it only stores
origin + website data type, but in the future it is going to store more things, like
host names that have cookies associated.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy):
Assert that we don't have any pending fetch data callbacks.
(WebKit::WebProcessProxy::connectionDidClose):
Invoke any pending fetch website data callbacks.
(WebKit::WebProcessProxy::didFetchWebsiteData):
Grab the callback and invoke it.
(WebKit::WebProcessProxy::fetchWebsiteData):
Set up a pending callback and send a FetchWebsiteData message to the web process.
* UIProcess/WebProcessProxy.h:
Add new member.
* UIProcess/WebProcessProxy.messages.in:
Add a DidFetchWebsiteData message.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeWebProcessAccessTypeForDataFetch):
Return the web process access type for the given set of data types.
(WebKit::WebsiteDataStore::fetchData):
Set up a callback aggregator that will assemble the needed website data into a vector of website data records.
(WebKit::computeNetworkProcessAccessTypeForDataRemoval):
(WebKit::computeWebProcessAccessTypeForDataRemoval):
Rename these functions to indicate that they are about data removal.
(WebKit::WebsiteDataStore::removeData):
Append "ForDataRemoval" to function calls.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
Tighten types.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::fetchWebsiteData):
For now, just fetch memory cache data.
* WebProcess/WebProcess.h:
Add new members.
* WebProcess/WebProcess.messages.in:
Add FetchWebsiteData message.
2015-02-24 Yusuke Suzuki <utatane.tea@gmail.com>
REGRESSION(r179429): Can't type comments in Facebook
https://bugs.webkit.org/show_bug.cgi?id=141859
Reviewed by Brent Fulgham.
Enable SymbolEnabled in inspector context.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetJavaScriptRuntimeFlags):
(WKPreferencesGetJavaScriptRuntimeFlags):
(WKPreferencesSetJavaScriptExperimentsEnabled): Deleted.
(WKPreferencesGetJavaScriptExperimentsEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRef.h:
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _javaScriptRuntimeFlags]):
(-[WKPreferences _setJavaScriptRuntimeFlags:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* mac/WebKit2.order:
2015-02-24 Anders Carlsson <andersca@apple.com>
Tighten up some SecurityOrigin related code, use references where possible
https://bugs.webkit.org/show_bug.cgi?id=141971
Reviewed by Antti Koivisto.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getIndexedDatabaseOrigins):
* Shared/SecurityOriginData.cpp:
(WebKit::SecurityOriginData::fromSecurityOrigin):
(WebKit::SecurityOriginData::securityOrigin):
* Shared/SecurityOriginData.h:
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createTransientLocalStorageMap):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::WebIDBServerConnection):
* WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
(WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins):
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::create):
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
* WebProcess/Storage/StorageAreaMap.h:
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
2015-02-24 Michael Catanzaro <mcatanzaro@igalia.com>
Crash loading local file with WebPageProxy::loadAlternateHTMLString
https://bugs.webkit.org/show_bug.cgi?id=141867
Reviewed by Anders Carlsson.
WebPageProxy::loadAlternateHTMLString needs to assume read access to unreachableURL as well
as baseURL, because unreachableURL will get added to the back/forward list, causing us to
crash later on when we notice the unexpected URL received in checkURLReceivedFromWebProcess.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTMLString):
2015-02-24 Ryuan Choi <ryuan.choi@navercorp.com>
[EFL] Add message APIs to communicate between ewk_context and extensions
https://bugs.webkit.org/show_bug.cgi?id=137660
Reviewed by Gyuyoung Kim.
* PlatformEfl.cmake: Added dependencies for ewk2UnitTestExtensionSample
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::EwkContext):
(EwkContext::didReceiveMessageFromInjectedBundle):
(EwkContext::setMessageFromExtensionCallback):
(EwkContext::processReceivedMessageFromInjectedBundle):
(ewk_context_message_post_to_extensions):
(ewk_context_message_from_extensions_callback_set):
(EwkContext::didReceiveSynchronousMessageFromInjectedBundle):
Deleted to split synchronouse message APIs from asynchronuous message APIs.
ewebkit will not support this until there are requirements.
(EwkContext::setMessageFromInjectedBundleCallback): Renamed to setMessageFromExtensionCallback.
(ewk_context_message_post_to_injected_bundle): Renamed to ewk_context_message_post_to_extensions.
(ewk_context_message_from_injected_bundle_callback_set): Renamed to ewk_context_message_from_injected_bundle_callback_set.
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/ewk_context_private.h:
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
Improved test case for ewk_context_new_with_extensions_path using the message APIs.
(EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
(EWK2UnitTest::EWK2UnitTestBase::SetUp):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
(EWK2UnitTest::EWK2UnitTestEnvironment::extensionSample): Deleted.
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
* UIProcess/API/efl/tests/extensions/extension_sample.cpp:
Improved test case for ewk_context_new_with_extensions_path using the message APIs.
* UIProcess/API/efl/tests/test_ewk2_context.cpp: Ditto.
(EWK2ContextTestWithExtension::messageReceivedCallback):
(EWK2ContextTestWithExtension::EWK2ContextTestWithExtension):
(TEST_F):
* WebProcess/InjectedBundle/API/efl/ewk_extension.cpp:
(toEwkExtendion):
(EwkExtension::EwkExtension):
(EwkExtension::didCreatePage):
(EwkExtension::willDestroyPage):
(EwkExtension::didReceiveMessage):
(EwkExtension::didReceiveMessageToPage):
(ewk_extension_message_post): Implemented to post message to ewk_context.
* WebProcess/InjectedBundle/API/efl/ewk_extension.h:
* WebProcess/InjectedBundle/API/efl/ewk_extension_private.h:
(EwkExtension::bundle):
* WebProcess/efl/ExtensionManagerEfl.cpp:
(WebKit::ExtensionManagerEfl::initialize):
Fixed the bug when there are different shared objects in extension path.
This is spotted while improving test case.
2015-02-23 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r180547 and r180550.
https://bugs.webkit.org/show_bug.cgi?id=141957
Broke 10 Windows tests. (Requested by bfulgham_ on #webkit).
Reverted changesets:
"REGRESSION(r179429): Can't type comments in Facebook"
https://bugs.webkit.org/show_bug.cgi?id=141859
http://trac.webkit.org/changeset/180547
"Constructor returning null should construct an object instead
of null"
https://bugs.webkit.org/show_bug.cgi?id=141640
http://trac.webkit.org/changeset/180550
2015-02-23 Ryosuke Niwa <rniwa@webkit.org>
Disable font loading events until our implementation gets updated to match the latest spec
https://bugs.webkit.org/show_bug.cgi?id=141938
Reviewed by Andreas Kling.
* Configurations/FeatureDefines.xcconfig:
2015-02-23 Yusuke Suzuki <utatane.tea@gmail.com>
REGRESSION(r179429): Can't type comments in Facebook
https://bugs.webkit.org/show_bug.cgi?id=141859
Reviewed by Geoffrey Garen.
Enable SymbolEnabled in inspector context.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetJavaScriptRuntimeFlags):
(WKPreferencesGetJavaScriptRuntimeFlags):
(WKPreferencesSetJavaScriptExperimentsEnabled): Deleted.
(WKPreferencesGetJavaScriptExperimentsEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRef.h:
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _javaScriptRuntimeFlags]):
(-[WKPreferences _setJavaScriptRuntimeFlags:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* mac/WebKit2.order:
2015-02-23 Benjamin Poulain <bpoulain@apple.com>
[iOS WK2] The WebProcess keep scrolling pages based on the last velocity after scrolling has been interrupted
https://bugs.webkit.org/show_bug.cgi?id=141933
rdar://problem/18746673
rdar://problem/19711490
Reviewed by Simon Fraser.
The bug happened like this:
1) The user scroll the page. WKContentView tracks the velocity and send
the update rect + velocity to the WebProcess.
2) The user interupts the scrolling but does not commit to either scrolling
again or cancelling the scrolling.
Since we were not notified of this state, the WebProcess still believed
the velocity is stable.
3) With any paint update, the WebProcess would account for the last velocity
and try to guess the best repaint area. This would drift endlessly out
of the view since the view is not really moving.
This patch fixes the issue by adding special handling for interrupted scrolling.
Kudos to Kurt Revis for providing us the required APIs.
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::operator==):
We can no longer filter VisibleContentRectUpdateInfo ignoring the velocity.
Typically, UIScrollView would call -scrollViewDidScroll: before being interrupted.
If we filter based on the VisibleContentRectUpdateInfo, we have two identical
states differing only by the velocity. If we filter the second update, the WebProcess
would never know the velocity should be zero.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollViewDidInterruptDecelerating:]):
We get this callback when scrolling is interrupted. We just need to clear
the velocity and re-send a new update for the current state.
(-[WKWebView _updateVisibleContentRects]):
Do not consider an interrupted scroll as a stable state. We don't know if scrolling
will resume or will stop.
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didInterruptScrolling]):
2015-02-23 Anders Carlsson <andersca@apple.com>
Add API for fetching website data records to _WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=141926
Reviewed by Beth Dakin.
* UIProcess/API/APIWebsiteDataRecord.cpp:
(API::WebsiteDataRecord::create):
(API::WebsiteDataRecord::WebsiteDataRecord):
* UIProcess/API/APIWebsiteDataRecord.h:
Update to take a WebsiteDataRecord parameter.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
Call down to the WebsiteDataStore.
* UIProcess/WebsiteData/WebsiteDataRecord.h: Added.
This will be the data-container part of WebsiteDataRecord, but it's currently empty.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
Just dispatch the completion handler for now.
* UIProcess/WebsiteData/WebsiteDataStore.h:
Add new member.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
2015-02-23 Chris Dumez <cdumez@apple.com>
Add support for diagnostic logging messages sampling
https://bugs.webkit.org/show_bug.cgi?id=141823
<rdar://problem/19899030>
Reviewed by Andreas Kling.
Add support for diagnostic logging messages sampling to decrease the
impact of diagnostic logging on CPU usage, while still getting useful
overall results. This patch adds a ShouldSample argument to
logDiagnosticMessage*() functions and logs 5% of the messages when
sampling. Sampling is turned on for keys that are known to be verbose
(e.g. per resource load logging).
On the page load test I am tracking, CPU usage caused by diagnostic
logging went down to 0.3% of UIProcess from 2.8% with this change.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::logDiagnosticMessage):
(WebKit::NetworkProcess::logDiagnosticMessageWithResult):
(WebKit::NetworkProcess::logDiagnosticMessageWithValue):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::NetworkCacheStatistics::recordNotUsingCacheForRequest):
(WebKit::NetworkCacheStatistics::recordRetrievalFailure):
(WebKit::NetworkCacheStatistics::recordRetrievedCachedEntry):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::logDiagnosticMessage):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/WebPageProxy.cpp:
(WebKit::shouldLogDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::willStartUserTriggeredZooming):
2015-02-23 Anders Carlsson <andersca@apple.com>
Add a stubbed out _WKWebsiteDataRecord class
https://bugs.webkit.org/show_bug.cgi?id=141919
Reviewed by Beth Dakin.
Also add the corresponding API::WebsiteDataRecord C++ class. A website data record is going to represent
a set of associated websites and the types of website data that exist for said websites.
* Shared/API/APIObject.h:
* UIProcess/API/APIWebsiteDataRecord.cpp: Added.
* UIProcess/API/APIWebsiteDataRecord.h: Added.
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: Added.
* UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm: Added.
* UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h: Added.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* WebKit2.xcodeproj/project.pbxproj:
2015-02-23 Timothy Horton <timothy_horton@apple.com>
Reproducible crash in ViewGestureController::removeSwipeSnapshot()
https://bugs.webkit.org/show_bug.cgi?id=141917
<rdar://problem/19918590>
Reviewed by Brian Weinstein.
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::removeSwipeSnapshot):
If the snapshot was purged and we're showing a white snapshot, we won't
be able to mark the (null) snapshot surface as volatile. Add a null check.
2015-02-23 Anders Carlsson <andersca@apple.com>
Replace another straight-up cast with a toImpl call
https://bugs.webkit.org/show_bug.cgi?id=141914
rdar://problem/19913016
Reviewed by Andreas Kling.
This fixes a problem where Mail would not display message bodies.
* UIProcess/API/Cocoa/WKConnection.mm:
(didReceiveMessage):
2015-02-20 Brent Fulgham <bfulgham@apple.com>
Scrollbars and ScrollAnimators must always have a ScrollableArea
https://bugs.webkit.org/show_bug.cgi?id=141855
Reviewed by Simon Fraser.
Change users of the scrollAnimator() method to expect a reference instead of a pointer.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::createScrollbar):
(WebKit::PDFPlugin::destroyScrollbar):
2015-02-20 Jessie Berlin <jberlin@webkit.org>
Build fix after r180465.
* UIProcess/mac/PageClientImpl.h:
2015-02-20 Carlos Alberto Lopez Perez <clopez@igalia.com>
[GTK] Unreviewed build fix after r180449.
* UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
(webkit_file_chooser_request_get_selected_files):
2015-02-20 Enrica Casucci <enrica@apple.com>
[WK2] Add support for font panel on OS X.
https://bugs.webkit.org/show_bug.cgi?id=141777
Reviewed by Tim Horton.
This patch adds the necessary hooks to WKView to support
the font panel. It also includes refactoring of WebPage::editorState
and WebPageProxy::editorStateChanged to separate the different platform
specific tasks.
* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState):
* UIProcess/API/mac/WKView.mm:
(-[WKView _selectionChanged]):
(-[WKView changeFont:]):
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::editorStateChanged): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::selectionDidChange):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setFont):
(WebKit::WebPageProxy::editorStateChanged):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformEditorState):
(WebKit::WebPage::setFont):
2015-02-20 Chris Dumez <cdumez@apple.com>
[WK2] Add more detailed diagnostic logging for measuring network cache efficacy
https://bugs.webkit.org/show_bug.cgi?id=141803
<rdar://problem/19632080>
Reviewed by Antti Koivisto.
Add more detailed diagnostic logging for measuring network cache
efficacy.
We want to know the reason the network cache is being by-passed, why
the network cache decided not to cache a response and why it cannot
reuse a cache entry.
This patch adds a new "UncachedReason" table to the SQLite database
to store the reason the network cache is deciding not to cache a
given response. This information is used later, when the resource is
requested again to log the reason why the request cannot be satistied
by the cache.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::decodeStorageEntry):
(WebKit::canRetrieve):
(WebKit::NetworkCache::retrieve):
(WebKit::canStore):
(WebKit::NetworkCache::store):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatistics.h:
* NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm:
(WebKit::NetworkCacheStatistics::initialize):
(WebKit::NetworkCacheStatistics::recordNotCachingResponse):
(WebKit::retrieveDecisionToDiagnosticKey):
(WebKit::NetworkCacheStatistics::recordNotUsingCacheForRequest):
(WebKit::storeDecisionToDiagnosticKey):
(WebKit::NetworkCacheStatistics::recordRetrievalFailure):
(WebKit::cachedEntryReuseFailureToDiagnosticKey):
(WebKit::NetworkCacheStatistics::recordRetrievedCachedEntry):
(WebKit::NetworkCacheStatistics::queryWasEverRequested):
(WebKit::NetworkCacheStatistics::clear):
2015-02-20 Anders Carlsson <andersca@apple.com>
API::String should just be a simple wrapper for WTF strings
https://bugs.webkit.org/show_bug.cgi?id=141852
Reviewed by Beth Dakin.
Expose a StringView member function on API::String. Move all the WKString API implementations to WKString.cpp.
* Shared/API/APIString.h:
* Shared/API/c/WKString.cpp:
(WKStringIsEmpty):
(WKStringGetLength):
(WKStringGetCharacters):
(WKStringGetMaximumUTF8CStringSize):
(WKStringGetUTF8CString):
(WKStringIsEqual):
(WKStringIsEqualToUTF8CString):
(WKStringIsEqualToUTF8CStringIgnoringCase):
2015-02-20 Anders Carlsson <andersca@apple.com>
API::String::string() needs to return an isolated string copy
https://bugs.webkit.org/show_bug.cgi?id=141846
Reviewed by Tim Horton.
Since we can expose API::String objects as NSStrings now, we need to make sure that
we return copied strings so we won't mess up the StringImpl refcounts.
* Shared/API/APIString.h:
2015-02-20 Alexey Proskuryakov <ap@apple.com>
Remove svn:keywords property.
As far as I can tell, the property had no effect on any of these files, but also,
when it has effect it's likely harmful.
* Platform/spi/ios/DataDetectorsUISPI.h: Removed property svn:keywords.
* Platform/spi/ios/ManagedConfigurationSPI.h: Removed property svn:keywords.
* Platform/spi/ios/TextInputSPI.h: Removed property svn:keywords.
* Scripts/webkit/LegacyMessageReceiver-expected.cpp: Removed property svn:keywords.
* Scripts/webkit/LegacyMessages-expected.h: Removed property svn:keywords.
* Scripts/webkit/MessageReceiver-expected.cpp: Removed property svn:keywords.
* Scripts/webkit/MessageReceiverSuperclass-expected.cpp: Removed property svn:keywords.
* Scripts/webkit/Messages-expected.h: Removed property svn:keywords.
* Scripts/webkit/MessagesSuperclass-expected.h: Removed property svn:keywords.
* UIProcess/ios/PageClientImplIOS.h: Removed property svn:keywords.
* UIProcess/ios/WKActionSheet.h: Removed property svn:keywords.
* UIProcess/ios/WKActionSheetAssistant.h: Removed property svn:keywords.
* UIProcess/ios/WKContentView.h: Removed property svn:keywords.
* UIProcess/ios/WKContentViewInteraction.h: Removed property svn:keywords.
* UIProcess/ios/WKGeolocationProviderIOS.h: Removed property svn:keywords.
* UIProcess/ios/WKScrollView.h: Removed property svn:keywords.
* UIProcess/mac/PageClientImpl.h: Removed property svn:keywords.
* UIProcess/mac/WKPrintingView.h: Removed property svn:keywords.
* UIProcess/mac/WKTextInputWindowController.h: Removed property svn:keywords.
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h: Removed property svn:keywords.
2015-02-20 Csaba Osztrogonác <ossy@webkit.org>
EFL URTBF
* Platform/efl/DispatchQueueEfl.cpp:
2015-02-20 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r180410, WorkQueue.h is in WTF now.
* Platform/efl/DispatchQueueWorkItemEfl.h:
2015-02-20 Anders Carlsson <andersca@apple.com>
Use toAPI when returning the object graph as a WKTypeRef
https://bugs.webkit.org/show_bug.cgi?id=141841
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKProcessGroup.mm:
(getInjectedBundleInitializationUserData):
2015-02-20 Eric Carlson <eric.carlson@apple.com>
[iOS] cleanup AirPlay code
https://bugs.webkit.org/show_bug.cgi?id=141811
Reviewed by Jer Noble.
* Configurations/FeatureDefines.xcconfig: IOS_AIRPLAY -> WIRELESS_PLAYBACK_TARGET.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Ditto.
2015-02-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[WK2][EFL] Fix the build after r180362
https://bugs.webkit.org/show_bug.cgi?id=141836
Reviewed by Carlos Garcia Campos.
As r180409, EFL port needs to add missing includes for several features,
and needs to have a specific implementation of toAPI/toImple for EFL port.
* UIProcess/API/C/WKBatteryManager.cpp:
* UIProcess/API/C/WKPage.cpp:
* UIProcess/API/C/efl/WKAPICastEfl.h:
(WebKit::toAPI):
(WebKit::toImpl):
* UIProcess/API/efl/ewk_url_scheme_request.cpp:
* UIProcess/CoordinatedGraphics/WebViewClient.cpp:
* UIProcess/efl/WebUIPopupMenuClient.cpp:
* UIProcess/efl/WebViewEfl.cpp:
* WebProcess/efl/ExtensionManagerEfl.cpp:
2015-02-20 Antti Koivisto <antti@apple.com>
Move WorkQueue from WK2 to WTF
https://bugs.webkit.org/show_bug.cgi?id=141797
Reviewed by Anders Carlsson.
* CMakeLists.txt:
* DatabaseProcess/DatabaseProcess.h:
* Platform/IPC/Connection.h:
* Platform/WorkQueue.cpp: Removed.
* Platform/WorkQueue.h: Removed.
* Platform/efl/WorkQueueEfl.cpp: Removed.
* Platform/gtk/WorkQueueGtk.cpp: Removed.
* Platform/mac/WorkQueueMac.cpp: Removed.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
* UIProcess/Launcher/ProcessLauncher.cpp:
* UIProcess/Storage/LocalStorageDatabase.cpp:
* UIProcess/Storage/LocalStorageDatabase.h:
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
* UIProcess/Storage/LocalStorageDatabaseTracker.h:
* UIProcess/Storage/StorageManager.cpp:
* UIProcess/Storage/StorageManager.h:
* WebKit2.xcodeproj/project.pbxproj:
2015-02-20 Carlos Garcia Campos <cgarcia@igalia.com>
[WK2][GTK] Fix the build after r180362
https://bugs.webkit.org/show_bug.cgi?id=141813
Reviewed by Žan Doberšek.
Add several missing includes and a specific implementation of
toAPI/toImpl for GTK+ WebView.
* UIProcess/API/C/gtk/WKAPICastGtk.h:
(WebKit::toAPI):
(WebKit::toImpl):
* UIProcess/API/C/gtk/WKView.cpp:
* UIProcess/API/gtk/WebKitFormClient.cpp:
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp:
* UIProcess/gtk/WebInspectorClientGtk.cpp:
2015-02-19 Shivakumar JM <shiva.jm@samsung.com>
Fix build warning in WebKit2/WebProcess and UIProcess module.
https://bugs.webkit.org/show_bug.cgi?id=141794.
Reviewed by Anders Carlsson.
Fix build warning by using UNUSED_PARAM macro.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeWebProcessAccessType):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::deleteWebsiteData):
2015-02-19 Remy Demarest <rdemarest@apple.com>
Make EnvironmentVariables::appendValue() handle the case where the existing value is an empty string.
https://bugs.webkit.org/show_bug.cgi?id=141818.
Reviewed by Dan Bernstein.
* UIProcess/Launcher/mac/EnvironmentVariables.cpp:
(WebKit::EnvironmentVariables::appendValue): If the existing value is an empty string, replace it rather than
append to it.
2015-02-19 Anders Carlsson <andersca@apple.com>
Make C SPI objects and modern API objects toll-free bridged
https://bugs.webkit.org/show_bug.cgi?id=141808
Reviewed by Tim Horton.
* Shared/API/APIObject.h:
(API::Object::wrap):
(API::Object::unwrap):
Add default implementations of wrap and unwrap. These just cast.
* Shared/API/c/WKArray.cpp:
(WKArrayCreate):
(WKArrayCreateAdoptingValues):
(WKArrayGetItemAtIndex):
* Shared/API/c/WKDictionary.cpp:
(WKDictionaryGetItemForKey):
Add toImpl and toAPI where necessary.
* Shared/API/c/WKSharedAPICast.h:
Add API::Object::wrap in toAPI and unwrap in toImpl.
* Shared/API/c/WKType.cpp:
(WKGetTypeID):
(WKRetain):
(WKRelease):
Add missing toImpl calls.
* Shared/Cocoa/APIObject.mm:
(API::Object::wrap):
Return the APIObject Objective-C wrapper.
(API::Object::unwrap):
Return the API::Object from the Objective-C object.
* Shared/Cocoa/WKObject.h:
Add wrap and unwrap declarations.
* UIProcess/API/C/WKPage.cpp:
* UIProcess/API/C/WKPageConfigurationRef.cpp:
* UIProcess/API/C/WKPageGroup.cpp:
* UIProcess/API/C/WKUserContentControllerRef.cpp:
Add missing includes; toImpl now requires a complete type.
2015-02-19 Timothy Horton <timothy_horton@apple.com>
Remove unused forward declaration from WKWebViewInternal.h
https://bugs.webkit.org/show_bug.cgi?id=141806
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
The use of WebCore::Highlight moved to WKContentView.
2015-02-19 Anders Carlsson <andersca@apple.com>
Use the real implementation type in our API cast traits
https://bugs.webkit.org/show_bug.cgi?id=141805
Reviewed by Sam Weinig.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toURLRef):
(WebKit::toAPI): Deleted.
(WebKit::toImpl): Deleted.
* UIProcess/GenericCallback.h:
2015-02-19 Anders Carlsson <andersca@apple.com>
Remove the stray storage manager from WebProcessPool
https://bugs.webkit.org/show_bug.cgi?id=141800
Reviewed by Sam Weinig.
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
(-[WKView _applicationWillTerminate:]): Deleted.
Remove code that calls applicationWillTerminate on the WebPageProxy.
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
(WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
(WebKit::WebKeyValueStorageManager::deleteAllEntries):
Get the storage manager from the website data store.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
Remove storage manager calls.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::applicationWillTerminate): Deleted.
* UIProcess/WebProcessPool.h:
Remove storage manager code.
* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::storageManager):
Add getter.
2015-02-19 Csaba Osztrogonác <ossy@webkit.org>
[WK2] Unreviewed buildfix for non-Cocoa platforms.
* CMakeLists.txt:
* UIProcess/WebsiteData/unix/WebsiteDataStoreUnix.cpp: Added.
(WebKit::WebsiteDataStore::platformInitialize): Added.
(WebKit::WebsiteDataStore::platformDestroy): Added.
2015-02-19 Anders Carlsson <andersca@apple.com>
WebsiteDataStore should ensure that local storage is written before exiting
https://bugs.webkit.org/show_bug.cgi?id=141798
Reviewed by Sam Weinig.
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: Added.
(WebKit::dataStoresWithStorageManagers):
(WebKit::WebsiteDataStore::platformInitialize):
(WebKit::WebsiteDataStore::platformDestroy):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::~WebsiteDataStore):
* UIProcess/WebsiteData/WebsiteDataStore.h:
* WebKit2.xcodeproj/project.pbxproj:
2015-02-18 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Fix NetworkCache build
https://bugs.webkit.org/show_bug.cgi?id=141778
Reviewed by Antti Koivisto.
Add missing header include to use round_page() on iOS.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
2015-02-18 Alexey Proskuryakov <ap@apple.com>
Remove input and output files from "Make Frameworks Symbolic Link" step
https://bugs.webkit.org/show_bug.cgi?id=141769
Reviewed by Dan Bernstein.
* WebKit2.xcodeproj/project.pbxproj:
2015-02-18 Timothy Horton <timothy_horton@apple.com>
Adopt WebCore::IOSurface in ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=141751
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
Remove old WKSI IOSurface-related functions.
2015-02-18 Beth Dakin <bdakin@apple.com>
iBooks immediate action blacklist should not even create the gesture recognizer
https://bugs.webkit.org/show_bug.cgi?id=141768
-and corresponding-
rdar://problem/19806770
Reviewed by Tim Horton.
Move the runtime-application check to the point where the gesture recognizer is
created so that we can avoid doing so.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:processPool:configuration:webView:]):
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _updateImmediateActionItem]):
2015-02-18 Chris Dumez <cdumez@apple.com>
Access FontCache global instance via singleton() static member function
https://bugs.webkit.org/show_bug.cgi?id=141726
Reviewed by Daniel Bates.
Access FontCache global instance via singleton() static member function,
as per coding style.
2015-02-18 Timothy Horton <timothy_horton@apple.com>
Add WKContext SPI to clear all visited links
https://bugs.webkit.org/show_bug.cgi?id=141752
<rdar://problem/9997966>
Reviewed by Dan Bernstein.
* UIProcess/API/C/WKContext.cpp:
(WKContextClearVisitedLinks):
* UIProcess/API/C/WKContext.h:
2015-02-17 Anders Carlsson <andersca@apple.com>
Add API for clearing in-memory caches to WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=141724
Reviewed by Tim Horton.
* Shared/WebsiteData/WebsiteDataTypes.h:
Add WebsiteDataTypeMemoryCache.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
Add WKWebsiteDataTypeMemoryCache.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWebsiteDataTypes):
Handle WKWebsiteDataTypeMemoryCache and convert it to WebsiteDataTypeMemoryCache.
* UIProcess/WebProcessProxy.cpp:
(WebKit::generateCallbackID):
Generate a new callback.
(WebKit::WebProcessProxy::~WebProcessProxy):
Assert that we don't have any pending callbacks.
(WebKit::WebProcessProxy::connectionDidClose):
Invoke pending callbacks.
(WebKit::WebProcessProxy::canTerminateChildProcess):
Don't try to terminate if we have pending callbacks.
(WebKit::WebProcessProxy::didDeleteWebsiteData):
Take the callback and invoke it.
(WebKit::WebProcessProxy::deleteWebsiteData):
Send a delete message.
* UIProcess/WebProcessProxy.h:
Add new members.
* UIProcess/WebProcessProxy.messages.in:
Add DidDeleteWebsiteData message.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeNetworkProcessAccessType):
Spell persistent correctly.
(WebKit::computeWebProcessAccessType):
Return a web process access type given the a data type mask.
(WebKit::WebsiteDataStore::removeData):
Ask any associated web processes to remove website data.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::deleteWebsiteData):
Delete the memory cache if requested.
* WebProcess/WebProcess.h:
Add new member.
* WebProcess/WebProcess.messages.in:
Add DeleteWebsiteData message.
2015-02-17 Timothy Horton <timothy_horton@apple.com>
REGRESSION (r178595): Clicking on DD highlights sometimes do not work
https://bugs.webkit.org/show_bug.cgi?id=141728
<rdar://problem/19825372>
Reviewed by Beth Dakin.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _cancelImmediateActionIfNeeded]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
The change that r178595 intended to make was purely that things that we
have no immediate actions for should cancel the immediate action gesture recognizer.
Moving the DataDetectors activation code as well breaks strict ordering
of immediate action callbacks vs. shouldUseActionsWithContext: that they depend on.
2015-02-17 Anders Carlsson <andersca@apple.com>
Only create the WebKit.framework symlink in PrivateFrameworks when the platform is iphoneos
https://bugs.webkit.org/show_bug.cgi?id=141710
<rdar://problem/19719748>
Reviewed by Andreas Kling.
Don't create the symlink when building for the simulator.
* WebKit2.xcodeproj/project.pbxproj:
2015-02-17 Chris Dumez <cdumez@apple.com>
Access MemoryPressureHandler global instance via a singleton() static member function
https://bugs.webkit.org/show_bug.cgi?id=141691
Reviewed by Andreas Kling.
Access MemoryPressureHandler global instance via a singleton() static
member function.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::lowMemoryHandler): Deleted.
* NetworkProcess/NetworkProcess.h:
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::initializeProcess):
(WebKit::PluginProcess::lowMemoryHandler): Deleted.
* PluginProcess/PluginProcess.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::processWillSuspend):
2015-02-16 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebKitFrame objects are never released
https://bugs.webkit.org/show_bug.cgi?id=141641
Reviewed by Martin Robinson.
Use a FrameDestructionObserver derived class to wrap our
WebKitFrame objects and delete them when the frame is destroyed,
instead of using willDestroyFrame callback of WKBundlePageLoaderClient
that has never worked.
* WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp:
(webkitFrameGetWebFrame):
* WebProcess/InjectedBundle/API/gtk/WebKitFramePrivate.h:
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkitFrameGetOrCreate):
(webkitFrameDestroy):
(webkitWebPageCreate):
(willDestroyFrame): Deleted.
2015-02-16 Tim Horton <timothy_horton@apple.com>
Fix the !USE(IOSURFACE) build
* Shared/mac/RemoteLayerBackingStore.mm:
SOFT_LINK_MAY_FAIL makes a function that will be unused if !USE(IOSURFACE).
2015-02-16 Tim Horton <timothy_horton@apple.com>
Sometimes RemoteLayerBackingStore ends up non-volatile while the process is suspended
<rdar://problem/19842957>
https://bugs.webkit.org/show_bug.cgi?id=141675
Reviewed by Simon Fraser.
Previously, it was possible to get a layer tree flush in between the
process suspension cleanup code making surfaces volatile and the process
actually being suspended (it was racy because the suspension requires
a few IPC round trips). Depending on how far through the flush we got,
we could sometimes end up either making new non-volatile backing store,
or switching some recently-made-volatile backing store back to non-volatile.
We don't want to have any non-volatile backing store while suspended.
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::updateAssertion):
Inform the WebProcess when it's going from suspended to runnable state.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::sendProcessDidResume):
* UIProcess/WebProcessProxy.h:
Forward the message along.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::processWillSuspend):
(WebKit::WebProcess::cancelProcessWillSuspend):
(WebKit::WebProcess::setAllLayerTreeStatesFrozen):
(WebKit::WebProcess::processDidResume):
Freeze all of this process' pages' layer trees when we start trying to suspend,
and un-freeze them when either suspension is cancelled or we resume.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2015-02-16 Tim Horton <timothy_horton@apple.com>
Adopt CAMachPort-as-layer-contents
https://bugs.webkit.org/show_bug.cgi?id=141687
<rdar://problem/19393233>
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::decode):
If we have CAMachPort, just keep the MachSendRight around.
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
If we have CAMachPort, make one and leak our send right into it. CAMachPort
will adopt the port and destroy it when needed.
(WebKit::RemoteLayerBackingStore::setBufferVolatility):
Tiny style fix.
2015-02-15 Sam Weinig <sam@webkit.org>
Add experimental <attachment> element support
https://bugs.webkit.org/show_bug.cgi?id=141626
Reviewed by Tim Horton.
* Configurations/FeatureDefines.xcconfig:
2015-02-16 Tim Horton <timothy_horton@apple.com>
REGRESSION (r176459): Process suspension cleanup timer sometimes never stops
https://bugs.webkit.org/show_bug.cgi?id=141669
Reviewed by Simon Fraser.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::markAllLayersVolatileIfPossible):
r176459 accidentally removed the code to stop the cleanup timer
in the case where we successfully finish marking layers volatile,
causing the timer to continue running once the process comes back
from a suspended state.
2015-02-16 Anders Carlsson <andersca@apple.com>
Check for the assume_nonnull feature instead of noescape
https://bugs.webkit.org/show_bug.cgi?id=141666
Reviewed by Dan Bernstein.
* Shared/API/Cocoa/WKFoundation.h:
2015-02-16 Anders Carlsson <andersca@apple.com>
Add nullability qualifiers to all API headers
https://bugs.webkit.org/show_bug.cgi?id=141652
rdar://problem/19793630
Reviewed by Dan Bernstein.
* Shared/API/Cocoa/WKFoundation.h:
Add a WK_NULLABLE_SPECIFIER macro.
* UIProcess/API/Cocoa/WKBackForwardListItem.h:
* UIProcess/API/Cocoa/WKFrameInfo.h:
* UIProcess/API/Cocoa/WKNavigationAction.h:
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/API/Cocoa/WKNavigationResponse.h:
* UIProcess/API/Cocoa/WKScriptMessage.h:
* UIProcess/API/Cocoa/WKScriptMessageHandler.h:
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKUserContentController.h:
* UIProcess/API/Cocoa/WKUserScript.h:
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWindowFeatures.h:
* mac/postprocess-framework-headers.sh:
Handle the WK_NULLABLE_SPECIFIER macro. Change the WK_NULLABLE sed command to replace
all occurrences of WK_NULLABLE instead of just the first one.
2015-02-16 Dan Bernstein <mitz@apple.com>
Update SPI availability annotations
https://bugs.webkit.org/show_bug.cgi?id=141588
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WKFoundation.h: Added a definition of __NSi_8_3 for when building with
an older SDK.
* UIProcess/API/Cocoa/WKErrorPrivate.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
2015-02-16 Antti Koivisto <antti@apple.com>
Remove unused InjectedBundle::setCacheModel.
Rubber-stamped by Anders Carlsson.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setCacheModel): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:
2015-02-16 Anders Carlsson <andersca@apple.com>
Build fix for versions of Xcode that support nullability but don't have the Foundation #defines.
* Shared/API/Cocoa/WKFoundation.h:
2015-02-16 Antti Koivisto <antti@apple.com>
Develop/Disable Caches does not properly disable disk cache
https://bugs.webkit.org/show_bug.cgi?id=141636
Reviewed by Anders Carlsson.
The menu item sets the cache model to "document viewer" to disable the caches (cache size 0).
However the cache model was never passed to the network process after the initialization.
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
Don't try to store or retrieve when the maximum cache size is set to zero.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setCacheModel):
Message the network process too.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetCacheModel): Deleted.
Remove the now unused SPI.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
2015-02-16 Antti Koivisto <antti@apple.com>
Assertion in disk cache code with redirect to a non-http resource
https://bugs.webkit.org/show_bug.cgi?id=141644
Reviewed by Anders Carlsson.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):
Check that response is HTTP before calling computeFreshnessLifetimeForHTTPFamily.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::canStore):
Deny storing non-HTTP responses to cache (though the above already covers this).
2015-02-13 Anders Carlsson <andersca@apple.com>
Add support for nullability to the header postprocessing
https://bugs.webkit.org/show_bug.cgi?id=141573
Reviewed by Darin Adler.
* Shared/API/Cocoa/WKFoundation.h:
* UIProcess/API/Cocoa/WKBackForwardList.h:
* mac/postprocess-framework-headers.sh:
2015-02-16 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[EFL] Rename WebContextEfl to WebProcessPoolEfl
https://bugs.webkit.org/show_bug.cgi?id=141642
Reviewed by Csaba Osztrogonác.
Although we've renamed almost everything in r177716, this is still
required after r177692.
* UIProcess/efl/WebProcessPoolEfl.cpp: Renamed from Source/WebKit2/UIProcess/efl/WebContextEfl.cpp.
2015-02-14 Alexey Proskuryakov <ap@apple.com>
Build fix after <http://trac.webkit.org/changeset/180122>
* Platform/mac/StringUtilities.mm:
2015-02-14 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Possible DDActionContext leaks, RetainPtr cleanup
https://bugs.webkit.org/show_bug.cgi?id=141613
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
Adopt the allocated object.
2015-02-09 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: remove some unnecessary Inspector prefixes from class names in Inspector namespace
https://bugs.webkit.org/show_bug.cgi?id=141372
Reviewed by Joseph Pecoraro.
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::remoteFrontendDisconnected):
2015-02-14 Beth Dakin <bdakin@apple.com>
REGRESSION: Page opens with enlarged font after visiting PDF, navigating back,
then doing a process swap
https://bugs.webkit.org/show_bug.cgi?id=141584
-and corresponding-
rdar://problem/18167729
Reviewed by Tim Horton.
This patch keeps the plugin zoom/scale factors separate from page zoom/scale
factors in the UI process since they are used for slightly different purposes for
plugins (i.e., PDFs) than they are for normal pages. Keeping track of the right
factor for the right type of document will ensure that we don’t use the wrong one.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::pageZoomFactor):
(WebKit::WebPageProxy::pageScaleFactor):
(WebKit::WebPageProxy::pluginScaleFactorDidChange):
(WebKit::WebPageProxy::pluginZoomFactorDidChange):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::pageZoomFactorDidChange): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::pageZoomFactor): Deleted.
(WebKit::WebPageProxy::pageScaleFactor): Deleted.
* UIProcess/WebPageProxy.messages.in:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::setPageScaleFactor):
2015-02-14 Brian J. Burg <burg@cs.washington.edu>
REGRESSION(r179573): Web Inspector toolbar is completely messed up on Mavericks
https://bugs.webkit.org/show_bug.cgi?id=141555
Reviewed by Joseph Pecoraro.
The old WKView-based code called _setDrawsBackground:NO on the WKView for Mavericks.
Simulate this old behavior by calling WebPageProxy::setDrawsBackground(false).
WKWebView's setOpaque:BOOL gives a flat background color instead of the intended
gradient, so we can't use that method.
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
2015-02-13 Simon Fraser <simon.fraser@apple.com>
Crash closing a tab when a context or popup menu is open
https://bugs.webkit.org/show_bug.cgi?id=141582
rdar://problem/17700475
Reviewed by Anders Carlsson.
If a context menu or a popup menu is open when a tab is programmatically closed,
then we'd crash because both the WebContextMenuProxyMac/WebPopupMenuProxyMac
and the WebPageProxy would be deleted while still in use, via messages
handled via the nested event tracking runloop.
Fix by protecting those things while showing the popup. Also programmatically
dismiss the popup when closing the WebPageProxy.
* UIProcess/WebContextMenuProxy.h:
(WebKit::WebContextMenuProxy::cancelTracking):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::showPopupMenu): Clean up some EFL-related confusion that we don't need.
Retaining |this| will also retain m_activePopupMenu.
(WebKit::WebPageProxy::hidePopupMenu):
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::resetState):
* UIProcess/WebPopupMenuProxy.h:
(WebKit::WebPopupMenuProxy::cancelTracking):
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenu):
(WebKit::WebContextMenuProxyMac::cancelTracking):
* UIProcess/mac/WebPopupMenuProxyMac.h: For popups, we need to remember if we were
canceled to avoid trying to send events after closing.
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac):
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
(WebKit::WebPopupMenuProxyMac::cancelTracking):
2015-02-13 Timothy Horton <timothy_horton@apple.com>
Fix the iOS build.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::removeSwipeSnapshot):
* UIProcess/mac/ViewGestureController.h:
This code is never used on iOS.
2015-02-13 Timothy Horton <timothy_horton@apple.com>
Make WebCore::IOSurface have single ownership instead of refcounting
https://bugs.webkit.org/show_bug.cgi?id=141578
Reviewed by Anders Carlsson.
* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::Buffer::discard):
* UIProcess/API/mac/WKView.mm:
(-[WKView _takeViewSnapshot]):
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
* UIProcess/mac/ViewSnapshotStore.h:
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::hasImage):
Adjust to the single-ownership model.
2015-02-13 Brent Fulgham <bfulgham@apple.com>
[iOS] Unreviewed build fix after r180076.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters): We do not
want to do this on iOS.
* UIProcess/WebPageProxy.h: No need to expose function
on iOS (only Mac).
2015-02-13 Brent Fulgham <bfulgham@apple.com>
[Mac, iOS] Adjust pagination behavior for Mail.app printing use
https://bugs.webkit.org/show_bug.cgi?id=141569
<rdar://problem/14912763>
Reviewed by Anders Carlsson.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode): Add new flag.
(WebKit::WebPageCreationParameters::decode): Ditto.
* Shared/WebPageCreationParameters.h: Ditto.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters): Set new page construction flag.
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::paginationQuirkEnabled): Ask for new pagination flag
when running as a Mail client.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Set up pagination based on desired settings.
2015-02-12 Simon Fraser <simon.fraser@apple.com>
determinePrimarySnapshottedPlugIn() should only traverse visible Frames
https://bugs.webkit.org/show_bug.cgi?id=141547
Part of rdar://problem/18445733.
Reviewed by Anders Carlsson.
Use FrameTree::traverseNextRendered() to avoid doing things in unrendered frames
which are not guaranteed to have been laid out.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
2015-02-13 Antti Koivisto <antti@apple.com>
WorkQueue should support concurrent queues
https://bugs.webkit.org/show_bug.cgi?id=141559
Reviewed by Anders Carlsson.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::DatabaseProcess):
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::open):
* Platform/WorkQueue.cpp:
(WorkQueue::create):
Also make create return a Ref.
(WorkQueue::WorkQueue):
* Platform/WorkQueue.h:
Add queue type enum.
* Platform/efl/WorkQueueEfl.cpp:
(WorkQueue::platformInitialize):
* Platform/gtk/WorkQueueGtk.cpp:
(WorkQueue::platformInitialize):
* Platform/mac/WorkQueueMac.cpp:
(WorkQueue::platformInitialize):
* Shared/mac/SecItemShim.cpp:
(WebKit::SecItemShim::initializeConnection):
* Shared/mac/SecItemShim.h:
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::processLauncherWorkQueue):
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::initializeConnection):
* UIProcess/mac/SecItemShimProxy.h:
* WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::initializeConnection):
* WebProcess/Plugins/PluginProcessConnectionManager.h:
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::EventDispatcher):
(WebKit::EventDispatcher::initializeConnection):
* WebProcess/WebPage/EventDispatcher.h:
* WebProcess/WebPage/ViewUpdateDispatcher.h:
2015-02-12 Anders Carlsson <andersca@apple.com>
Clean up the framework postprocessing phase
https://bugs.webkit.org/show_bug.cgi?id=141544
Reviewed by Dan Bernstein.
Rename WK_API_AVAILABILITY_ENABLED to WK_FRAMEWORK_HEADER_POSTPROCESSING_ENABLED to better match what
it is we're doing. Also, rename the associated script. Remove a couple of now unnecessary #defines, and
change everything we can to be feature-based instead of OS based.
* Configurations/WebKit.xcconfig:
* Shared/API/Cocoa/WKFoundation.h:
* WebKit2.xcodeproj/project.pbxproj:
* mac/postprocess-framework-headers.sh: Renamed from Source/WebKit2/mac/rewrite-availability-macros.sh.
2015-02-12 Tim Horton <timothy_horton@apple.com>
Crash removing RemoteLayerTreeDisplayRefreshMonitor from the drawing area's map
https://bugs.webkit.org/show_bug.cgi?id=141545
<rdar://problem/17712200>
Reviewed by Simon Fraser.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::windowScreenDidChange):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
windowScreenDidChange should take uint32_t, since that's what PlatformDisplayID is.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
RemoteLayerTreeDisplayRefreshMonitor is driven by the page's
RemoteLayerTreeDrawingArea. Because of this, we cannot have the same
sharing of DisplayRefreshMonitors that other platforms use.
In order to ensure that we get a unique DisplayRefreshMonitor
per-DrawingArea, give each page a unique DisplayID derived
from WebPage's unique ID.
2015-02-12 Tim Horton <timothy_horton@apple.com>
Crash under RemoteLayerTreeDrawingArea::flushLayers() when closing a tab
https://bugs.webkit.org/show_bug.cgi?id=141541
Reviewed by Benjamin Poulain.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
The WebPage pointer can become stale between when it is retrieved
and dereferenced. Retrieve it by ID inside the dispatch_async block
instead of outside of it.
2015-02-12 Antti Koivisto <antti@apple.com>
WebKit persistent cache uses a lot of threads
https://bugs.webkit.org/show_bug.cgi?id=141520
Reviewed by Andreas Kling.
Parallel retrieves are limited but stores are not. We may end up with lots of backround io
dispatch queue threads if they don't complete fast enough.
This patch adds pending state for write operations similar to what retrieves already have
and limits to number of active operations.
* NetworkProcess/cache/NetworkCacheStorage.h:
Combine StoreOperation and UpdateOperation and rename to WriteOperation.
Rename RetrieveOperation to ReadOperation.
The idea is to emphasize that these are disk operations.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::dispatchReadOperation):
(WebKit::NetworkCacheStorage::dispatchPendingReadOperations):
(WebKit::retrieveFromMemory):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
(WebKit::NetworkCacheStorage::dispatchPendingWriteOperations):
Only allow 3 parallel writes.
(WebKit::NetworkCacheStorage::dispatchFullWriteOperation):
(WebKit::NetworkCacheStorage::dispatchHeaderWriteOperation):
More informative names.
(WebKit::NetworkCacheStorage::dispatchRetrieveOperation): Deleted.
(WebKit::NetworkCacheStorage::dispatchPendingRetrieveOperations): Deleted.
(WebKit::retrieveActive): Deleted.
2015-02-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add API to allow overriding the default color chooser implementation
https://bugs.webkit.org/show_bug.cgi?id=98935
Reviewed by Gustavo Noronha Silva.
Add API to allow the user to override the default UI of color
chooser. Similar to the file chooser API, a new run-color-chooser
signal is added to WebKitWebView that passes a WebKitColorChooserRequest
parameter to the signal.
Initial patch by Arnaud Renevier <a.renevier@sisa.samsung.com>.
* PlatformGTK.cmake: Add new files to compilation.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::createColorPicker): Create a
WebKitColorChooser is the view widget is a WebKitWebView or a
WebColorPicker otherwise,
* UIProcess/API/gtk/WebKitColorChooser.cpp: Added.
(WebKit::WebKitColorChooser::create):
(WebKit::WebKitColorChooser::WebKitColorChooser):
(WebKit::WebKitColorChooser::~WebKitColorChooser):
(WebKit::WebKitColorChooser::endPicker): Chain up to parent class
when not having a request, or finish the request if we have one.
(WebKit::WebKitColorChooser::colorChooserRequestFinished):
(WebKit::WebKitColorChooser::colorChooserRequestRGBAChanged):
(WebKit::WebKitColorChooser::showColorPicker): Create a new
WebKitColorChooserRequest and emit WebKitWebView::run-color-chooser.
If the signal is not handled, fallback to the default color
chooser dialog implemented by the parent class.
* UIProcess/API/gtk/WebKitColorChooser.h: Added.
* UIProcess/API/gtk/WebKitColorChooserRequest.cpp: Added.
(webkitColorChooserRequestGetProperty):
(webkitColorChooserRequestSetProperty):
(webkit_color_chooser_request_class_init):
(webkit_color_chooser_request_set_rgba):
(webkit_color_chooser_request_get_rgba):
(webkit_color_chooser_request_get_element_rectangle):
(webkit_color_chooser_request_finish):
(webkit_color_chooser_request_cancel):
(webkitColorChooserRequestCreate):
* UIProcess/API/gtk/WebKitColorChooserRequest.h: Added.
* UIProcess/API/gtk/WebKitColorChooserRequestPrivate.h: Added.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_class_init): Add run-color-chooser signal.
(webkitWebViewEmitRunColorChooser): Emit run-color-chooser signal.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for WebKitColorChooserRequest.
* UIProcess/API/gtk/webkit2.h: Include WebKitColorChooserRequest.h
2015-02-11 Enrica Casucci <enrica@apple.com>
iOS build fix.
Unreviewed.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView inputAssistantItem]):
(-[WKContentView _inputAssistantItem]):
2015-02-11 Chris Dumez <cdumez@apple.com>
[WK2] Add logging to validate the network cache efficacy (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=141345
<rdar://problem/19632080>
Reviewed by Sam Weinig.
Add diagnostic logging messages to validate the network cache efficacy.
The following 4 messages are added:
- networkCache / retrieval / success
- networkCache / retrieval / unhandledRequestFailure
- networkCache / retrieval / noLongerInCacheFailure
- networkCache / retrieval / unusableCachedEntryFailure
The messages are sent via IPC from the NetworkProcess to the UIProcess,
where the WebPageProxy code already handles diagnostic messages sent by
the WebProcess.
2015-02-11 Tim Horton <timothy_horton@apple.com>
REGRESSION (iOS 8): PDFs embedded in <object>/<embed> tag don't load at all
https://bugs.webkit.org/show_bug.cgi?id=141457
<rdar://problem/18221851>
Reviewed by Alexey Proskuryakov.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::objectContentType):
On iOS, if we don't know what to do with a PDF-in-object, treat it as an image.
2015-02-11 ChangSeok Oh <changseok.oh@collabora.com>
Activate ReliefLogger of a memory pressure handler for linux system.
https://bugs.webkit.org/show_bug.cgi?id=123611
Reviewed by Anders Carlsson.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
Make the parameter, shouldEnableMemoryPressureReliefLogging shareable with COCOA else systems.
(WebKit::WebProcessCreationParameters::encode): ditto.
(WebKit::WebProcessCreationParameters::decode): ditto.
* Shared/WebProcessCreationParameters.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess): Set shouldEnableMemoryPressureReliefLogging
to true for linux system.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess): Pass the shouldEnableMemoryPressureReliefLogging value
to MemoryPressureHandler::ReliefLogger::setLoggingEnabled().
2015-02-11 Yusuke Suzuki <utatane.tea@gmail.com>
[GTK][EFL] Suppress a warning of unused params
https://bugs.webkit.org/show_bug.cgi?id=141474
Reviewed by Darin Adler.
Drop unused argument name, `directoryName`.
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
2015-02-11 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add default color chooser implementation using GtkColorChooserDialog
https://bugs.webkit.org/show_bug.cgi?id=141392
Reviewed by Gustavo Noronha Silva.
* PlatformGTK.cmake: Add new files to compilation.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::createColorPicker): Call WebColorPickerGtk::create().
* UIProcess/gtk/WebColorPickerGtk.cpp: Added.
(WebKit::WebColorPickerGtk::create):
(WebKit::WebColorPickerGtk::WebColorPickerGtk):
(WebKit::WebColorPickerGtk::~WebColorPickerGtk):
(WebKit::WebColorPickerGtk::cancel): Set initial color.
(WebKit::WebColorPickerGtk::endPicker): Destroy the color chooser dialog.
(WebKit::WebColorPickerGtk::didChooseColor): Notify the client.
(WebKit::WebColorPickerGtk::colorChooserDialogRGBAChangedCallback):
Update the selected color.
(WebKit::WebColorPickerGtk::colorChooserDialogResponseCallback):
Cancel or finish the operation depending on the dialog response.
(WebKit::WebColorPickerGtk::showColorPicker): Create a
GtkColorChooserDialog to handle the color picker operation.
* UIProcess/gtk/WebColorPickerGtk.h: Added.
(WebKit::WebColorPickerGtk::initialColor):
2015-02-11 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r179910.
https://bugs.webkit.org/show_bug.cgi?id=141464
Caused assertions on debug bots (Requested by ap on #webkit).
Reverted changeset:
"[WK2] Add logging to validate the network cache efficacy
(Part 2)"
https://bugs.webkit.org/show_bug.cgi?id=141345
http://trac.webkit.org/changeset/179910
2015-02-10 Chris Dumez <cdumez@apple.com>
[WK2] Add logging to validate the network cache efficacy (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=141345
<rdar://problem/19632080>
Reviewed by Antti Koivisto.
Add diagnostic logging messages to validate the network cache efficacy.
The following 4 messages are added:
- networkCache / retrieval / success
- networkCache / retrieval / unhandledRequestFailure
- networkCache / retrieval / noLongerInCacheFailure
- networkCache / retrieval / unusableCachedEntryFailure
The messages are sent via IPC from the NetworkProcess to the UIProcess,
where the WebPageProxy code already handles diagnostic messages sent by
the WebProcess.
2015-02-10 Conrad Shultz <conrad_shultz@apple.com>
Clients need the ability to hook into immediate action lifecycle
https://bugs.webkit.org/show_bug.cgi?id=141449
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Expose new methods.
* UIProcess/API/mac/WKView.mm:
(-[WKView _prepareForImmediateActionAnimation]):
(-[WKView _cancelImmediateActionAnimation]):
(-[WKView _completeImmediateActionAnimation]):
Stub implementations.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
Send -_prepareForImmediateActionAnimation.
(-[WKImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
Send -_cancelImmediateActionAnimation.
(-[WKImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):
Send -_completeImmediateActionAnimation.
2015-02-10 Dan Bernstein <mitz@apple.com>
<rdar://problem/19770264> Starting a navigation gesture dismisses the keyboard
Reviewed by Tim Horton.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture): Reordered the view hierarchy changes,
such that m_liveSwipeView will not momentarily move out of the window, because that causes
the window’s first responder to be set to nil (if it was a descendant of m_liveSwipView).
2015-02-10 Enrica Casucci <enrica@apple.com>
Hit testing is misplaced when selecting on wikipedia page.
https://bugs.webkit.org/show_bug.cgi?id=141410
rdar://problem/19768211
Reviewed by Simon Fraser.
When loading a new document into the same WebPage object, we need
to clear the assisted node, since there is no guarantee that the
node will be blurred. The bug was caused by the use of a stale
assisted node to constrain the point where the gesture occurs.
The node was still valid, since the previous page was in the cache.
I've added a ASSERT to check that, when constraining the point to
node rectangle, the node is in the same document as the one we
are performing hit test on. When the frame is detached, we clear
the assisted node if the node is part of the document is the frame
being detached.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::detachedFromParent2):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::constrainPoint):
(WebKit::WebPage::resetAssistedNodeForFrame):
2015-02-10 Joseph Pecoraro <pecoraro@apple.com>
[Cocoa] NSData over retain in WKBrowsingContextController loadData
https://bugs.webkit.org/show_bug.cgi?id=141437
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
API::Data::createWithoutCopying will automatically do the retaining / releasing for us.
2015-02-10 Zhuo Li <zachli@apple.com>
[WK2] Add support for registering url schemes to bypass Content Security Policy.
https://bugs.webkit.org/show_bug.cgi?id=140736
Reviewed by Anders Carlsson.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy):
* UIProcess/WebProcessPool.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::registerURLSchemeAsBypassingContentSecurityPolicy):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2015-02-10 Sanghyup Lee <sh53.lee@samsung.com>
[EFL] Use a variable to set flicking time instead of hardcoding
https://bugs.webkit.org/show_bug.cgi?id=138950
Reviewed by Gyuyoung Kim.
Currently time of flick gesture animation is hardcoded as one second.
This patch added a static variable to increase readability.
* UIProcess/API/efl/GestureRecognizer.cpp:
(WebKit::GestureHandler::GestureHandler):
(WebKit::GestureHandler::flickAnimatorCallback):
(WebKit::GestureHandler::handleFlick):
2015-02-09 Enrica Casucci <enrica@apple.com>
Selection flickers when trying to change size of selection.
https://bugs.webkit.org/show_bug.cgi?id=141404
rdar://problem/18824863
Reviewed by Benjamin Poulain.
When looking for the contracted range from the current range,
we were incorrectly choosing a selection whose rectangle is empty
as a best match candidate. This was throwing off all the logic
and producing a contracted range whose rectangle was bigger than the
expanded range, therefore producing a shrink threshold larger than the
growth one.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::contractedRangeFromHandle):
2015-02-09 Brian J. Burg <burg@cs.washington.edu>
REGRESSION(r179705): 2nd-level inspector availability no longer controlled by DeveloperExtrasEnabled user default
https://bugs.webkit.org/show_bug.cgi?id=141343
Reviewed by Timothy Hatcher.
The regression was caused by the switch to using WKWebViewConfiguration and
its default WebPreferences object, which is used to populate the inspector page's
Settings object. This WebPreferences is initialized with no identifier, so
only preferences in the FOR_EACH_WEBKIT_DEBUG_*_PREFERENCE macros are populated
from NSUserDefaults.
The simplest fix is to move DeveloperExtrasEnabled into the DEBUG group.
Previously, each inspector level had a unique identifier such as
__WebInspectorPageGroupLevelN__, and the n+1 level inspector was enabled
by toggling __WebInspectorPageGroupLevelN__.WebKit2DeveloperExrasEnabled.
With the move to the DEBUG group, the preference becomes simply
WebKitDeveloperExtrasEnabled, which enables any level of inspector.
(This does not clash with Safari's "Show Develop Menu" preference, which uses
the key "WebKitDeveloperExtrasEnabledPreferenceKey")
* Shared/WebPreferencesDefinitions.h:
2015-02-08 Antti Koivisto <antti@apple.com>
Measure cache size more accurately
https://bugs.webkit.org/show_bug.cgi?id=141378
<rdar://problem/19760224>
Reviewed by Chris Dumez.
Estimate the cache disk space usage from the actual entry sizes instead of the item count.
This prevents large cache items from making the cache grow beyond its bounds.
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::initialize):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
2015-02-09 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r179705): [GTK] The Web Inspector doesn't work after r179705
https://bugs.webkit.org/show_bug.cgi?id=141333
Reviewed by Žan Doberšek.
Create an initialize WebPreferences for the inspector page. This
was moved from cross-platform code to platform specific code.
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
2015-02-08 Timothy Horton <timothy_horton@apple.com>
Null deref in _clearImmediateActionState when closing a view with a DataDetectors popover open
https://bugs.webkit.org/show_bug.cgi?id=141377
<rdar://problem/19711203>
Reviewed by Darin Adler.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
We can have already detached the page when DataDetectors calls us back
in interactionStoppedHandler. While we have kept a strong reference to the
page in the interactionStoppedHandler block, _page is nulled out.
It's OK to avoid doing this work, in any case, because closing a page
tears down the TextIndicator anyway.
2015-02-08 Chris Dumez <cdumez@apple.com>
[WK2] Add logging to validate the network cache efficacy (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=141269
<rdar://problem/19632080>
Reviewed by Antti Koivisto.
Add console logging to validate the network cache efficacy. This will
tell us if how the network cache satisties requests, in particular:
- Request cannot be handled by the cache
- Entry was not in the cache but is no longer there (pruned)
- Entry is in the cache but is not usable
- Entry is in the cache and is used.
This patch introduces a SQLite-based network cache statistics storage
that is used to store requests we have seen before, and query if we
have seen a request before. The storage is lightweight as it only
stores hashes in the database, in a background thread.
The statistics cache is initially bootstapped from the network disk
cache so that we have data initially and get as accurate statistics
as possible from the start.
To maintain an acceptable level of performance, we have a hard limit
on the number of unique requests that are retained set to 100000.
Diagnostic logging for this will be added in a follow-up patch.
2015-02-07 Chris Dumez <cdumez@apple.com>
Add Vector::removeFirstMatching() / removeAllMatching() methods taking lambda functions
https://bugs.webkit.org/show_bug.cgi?id=141321
Reviewed by Darin Adler.
Use new Vector::removeFirstMatching() / removeAllMatching() methods.
2015-02-07 Tim Horton <timothy_horton@apple.com>
Add API::HistoryClient and split some things out of API::NavigationClient
https://bugs.webkit.org/show_bug.cgi?id=141264
Reviewed by Darin Adler.
* UIProcess/API/APIHistoryClient.h: Added.
(API::HistoryClient::~HistoryClient):
(API::HistoryClient::didNavigateWithNavigationData):
(API::HistoryClient::didPerformClientRedirect):
(API::HistoryClient::didPerformServerRedirect):
(API::HistoryClient::didUpdateHistoryTitle):
* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didNavigateWithNavigationData): Deleted.
(API::NavigationClient::didPerformClientRedirect): Deleted.
(API::NavigationClient::didPerformServerRedirect): Deleted.
(API::NavigationClient::didUpdateHistoryTitle): Deleted.
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::createHistoryClient):
(WebKit::NavigationState::HistoryClient::HistoryClient):
(WebKit::NavigationState::HistoryClient::~HistoryClient):
(WebKit::NavigationState::HistoryClient::didNavigateWithNavigationData):
(WebKit::NavigationState::HistoryClient::didPerformClientRedirect):
(WebKit::NavigationState::HistoryClient::didPerformServerRedirect):
(WebKit::NavigationState::HistoryClient::didUpdateHistoryTitle):
(WebKit::NavigationState::NavigationClient::didNavigateWithNavigationData): Deleted.
(WebKit::NavigationState::NavigationClient::didPerformClientRedirect): Deleted.
(WebKit::NavigationState::NavigationClient::didPerformServerRedirect): Deleted.
(WebKit::NavigationState::NavigationClient::didUpdateHistoryTitle): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setHistoryClient):
(WebKit::WebPageProxy::didNavigateWithNavigationData):
(WebKit::WebPageProxy::didPerformClientRedirect):
(WebKit::WebPageProxy::didPerformServerRedirect):
(WebKit::WebPageProxy::didUpdateHistoryTitle):
* UIProcess/WebPageProxy.h:
Add a API::HistoryClient and move the few things that belong on it out of API::NavigationClient.
Adjust accordingly in WebPageProxy and NavigationState.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView setNavigationDelegate:]):
(-[WKWebView setUIDelegate:]):
(-[WKWebView _setHistoryDelegate:]):
Lazily push the NavigationState/UIDelegate clients down to WebPageProxy upon
installation of a delegate, so that alternative (C SPI) delegate setters can
be separately created.
* WebKit2.xcodeproj/project.pbxproj:
2015-02-07 Antti Koivisto <antti@apple.com>
And as a further followup restore the 8bit test too.
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::hashString):
2015-02-07 Antti Koivisto <antti@apple.com>
Use longer hashes for cache keys
https://bugs.webkit.org/show_bug.cgi?id=141356
Rubber-stamped by Darin Adler.
Folloup and build fix.
* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::hashString):
Use containsOnlyASCII instead of is8Bit so both paths always compute the same hash.
* NetworkProcess/cache/NetworkCacheKey.h:
2015-02-07 Antti Koivisto <antti@apple.com>
Remove a printf.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::retrieve):
2015-02-07 Antti Koivisto <antti@apple.com>
Use longer hashes for cache keys
https://bugs.webkit.org/show_bug.cgi?id=141356
Reviewed by Darin Adler.
The current key hashes are 32bit. We should use longer hashes to eliminate collisions.
This patch switches us to using MD5 digests for the cache key hashes. As a result the file names for the cache
entries grow from 8 to 32 character.
Note that we don't need a cryptographic hash (full cache keys are verified against the entries).
MD5 just happens to be fast, convenient and available.
The patch also moves the whole cache hierarchy down to a versioned subdirectory ("WebKitCache/Version 2")
and deletes any old style cache files if they exist.
* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCacheCoder<MD5::Digest>::encode):
(WebKit::NetworkCacheCoder<MD5::Digest>::decode):
* NetworkProcess/cache/NetworkCacheCoders.h:
* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCacheKey::NetworkCacheKey):
(WebKit::hashString):
(WebKit::NetworkCacheKey::computeHash):
(WebKit::NetworkCacheKey::hashAsString):
(WebKit::NetworkCacheKey::stringToHash):
* NetworkProcess/cache/NetworkCacheKey.h:
(WebKit::NetworkCacheKey::shortHash):
(WebKit::NetworkCacheKey::toShortHash):
32bit hash to use in the bloom filter.
(WebKit::NetworkCacheKey::hashStringLength):
* NetworkProcess/cache/NetworkCacheStorage.h:
Bump the version.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::traverseCacheFiles):
(WebKit::makeVersionedDirectoryPath):
(WebKit::NetworkCacheStorage::NetworkCacheStorage):
(WebKit::NetworkCacheStorage::initialize):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
(WebKit::NetworkCacheStorage::deleteOldVersions):
Wipe out the version 1 cache.
2015-02-06 Chris Dumez <cdumez@apple.com>
Have SQLiteStatement::database() return a reference
https://bugs.webkit.org/show_bug.cgi?id=141348
Reviewed by Andreas Kling.
Have SQLiteStatement::database() return a reference as it can never
return null.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::SQLiteIDBCursor::internalAdvanceOnce):
2015-02-06 Alexey Proskuryakov <ap@apple.com>
Report network process crashes during layout tests
https://bugs.webkit.org/show_bug.cgi?id=139646
Reviewed by Anders Carlsson.
Added a way to get network process pid, modeled after how we do this for web process.
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextGetNetworkProcessIdentifier):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::networkProcessCrashed): Don't reset m_networkProcess until
after calling the client, so that the client could retrieve its pid.
(WebKit::WebProcessPool::networkProcessIdentifier):
* UIProcess/WebProcessPool.h:
2015-02-05 Timothy Hatcher <timothy@apple.com>
Support overriding the deviceScaleFactor per WKWebView/WKView
https://bugs.webkit.org/show_bug.cgi?id=141311
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setOverrideDeviceScaleFactor:]):
(-[WKWebView _overrideDeviceScaleFactor]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _intrinsicDeviceScaleFactor]):
(-[WKView _setOverrideDeviceScaleFactor:]):
(-[WKView _overrideDeviceScaleFactor]):
2015-02-06 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remove WebKitWebView::close-notification signal
https://bugs.webkit.org/show_bug.cgi?id=141330
Reviewed by Gustavo Noronha Silva.
In favor of a WebKitNotification::closed signal and
webkit_notification_close() method that both applications and
WebKit can use to close a notification. This also fixes the
onclose event that was not fired when the notification was
closed. It also brings back padding space in WebKitWebViewClass.
* UIProcess/API/gtk/WebKitNotification.cpp:
(webkit_notification_class_init): Add WebKitNotification::closed signal.
(webkit_notification_close): Emit WebKitNotification::closed.
* UIProcess/API/gtk/WebKitNotification.h:
* UIProcess/API/gtk/WebKitNotificationProvider.cpp:
(WebKitNotificationProvider::notificationCloseCallback): Callback
for WebKitNotification::closed signal that notifies the WebProcess
and removes the notification from the map.
(WebKitNotificationProvider::show): Connect to WebKitNotification::closed.
(WebKitNotificationProvider::cancelNotificationByID): Call webkit_notification_close().
* UIProcess/API/gtk/WebKitNotificationProvider.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(notifyNotificationClosed): The user closed the annotation, call
webkit_notification_close().
(webNotificationClosed): The WebKitNotification has been closed,
close the libnotify notification if it hasn't been closed yet.
(webkitWebViewShowNotification): Create the libnotifiy
notification if needed and associate it to the WebKitNotification
as user data. Connect to the closed signal of both, the libnotifiy
notification and the WebKit notification.
(webkitWebViewCloseNotification): Deleted.
(webkit_web_view_class_init): Remove close-notification signal and
the default hanlder.
(webkitWebViewEmitCloseNotification): Deleted.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add webkit_notification_close.
2015-02-06 Carlos Garcia Campos <cgarcia@igalia.com>
ASSERTION FAILED: !m_adoptionIsRequired in WTF::RefCountedBase::ref
https://bugs.webkit.org/show_bug.cgi?id=141035
Reviewed by Sergio Villar Senin.
Rename PrinterListGtk::singleton() as PrinterListGtk::getOrCreate(), and
make it return nullptr when the shared PrinterListGtk object is
still being created. This can happen if the nested loop used by
gtk_enumerate_printers dispatches a GSource that starts a new
synchronous print operation. In that case we just ignore the
second print operation, since there's already one ongoing.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print): Return early if
PrinterListGtk::getOrCreate() return nullptr.
* WebProcess/WebPage/gtk/PrinterListGtk.cpp:
(WebKit::PrinterListGtk::getOrCreate): Return nullptr if the
PrinterListGtk is still enumerating the printers.
(WebKit::PrinterListGtk::PrinterListGtk): Initialize
m_enumeratingPrinters to true before calling
gtk_enumerate_printers, and to false once it finishes.
(WebKit::PrinterListGtk::singleton): Deleted.
(WebKit::PrinterListGtk::enumeratePrintersFunction): Deleted.
* WebProcess/WebPage/gtk/PrinterListGtk.h:
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Add an
assertion here since PrinterListGtk::getOrCreate() should never
return nullptr at this point.
2015-02-05 Tim Horton <timothy_horton@apple.com>
Null deref in ViewGestureController::beginSwipeGesture when swiping while script is navigating
https://bugs.webkit.org/show_bug.cgi?id=141308
<rdar://problem/18460046>
Reviewed by Simon Fraser.
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::trackSwipeGesture):
If script navigates (history.back, probably other cases too) while in the middle of
building up enough scroll events to start a swipe, it can destroy the history item
that we were planning to swipe to. If this happens, bail from the swipe.
2015-02-05 Alexey Proskuryakov <ap@apple.com>
Don't pass architecture to development plug-in XPC services
https://bugs.webkit.org/show_bug.cgi?id=141309
Reviewed by Anders Carlsson.
We now have separate services for 32-bit and 64-bit.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
(WebKit::reexec):
(WebKit::XPCServiceEventHandler):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToReExecService):
2015-02-05 Chris Dumez <cdumez@apple.com>
Use deleteEmptyDirectory() in NetworkCacheStorage::clear()
https://bugs.webkit.org/show_bug.cgi?id=141314
Reviewed by Antti Koivisto.
Use deleteEmptyDirectory() in NetworkCacheStorage::clear() to simplify
the code a little bit.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::clear):
2015-02-05 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Remove False Positive dispatch_source Leak in WebMemoryPressureHandler singleton
https://bugs.webkit.org/show_bug.cgi?id=141307
Reviewed by Anders Carlsson.
* UIProcess/ios/WebMemoryPressureHandlerIOS.h:
* UIProcess/ios/WebMemoryPressureHandlerIOS.mm:
(WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):
We want to keep the dispatch_source around, so just tie it to the
singleton so that it is not reported as a leak.
2015-02-05 Antti Koivisto <antti@apple.com>
Switch to file backed buffer when resource is cached to disk
https://bugs.webkit.org/show_bug.cgi?id=141295
Reviewed by Chris Dumez.
Wire the DidCacheResource mechanism to the new disk cache.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):
Send DidCacheResource message to the web process so it can switch the resource to file backing.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::store):
(WebKit::NetworkCache::update):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::DispatchPtr::DispatchPtr):
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::Data::Data):
(WebKit::mapFile):
(WebKit::decodeEntry):
(WebKit::retrieveActive):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
Map files larger than a memory page after a successful store.
(WebKit::NetworkCacheStorage::update):
(WebKit::encodeEntry): Deleted.
2015-02-05 Chris Dumez <cdumez@apple.com>
[WK2] Properly check for mmap() error case
https://bugs.webkit.org/show_bug.cgi?id=141304
Reviewed by Anders Carlsson.
mmap() returns MAP_FAILED, which is (void*)-1, not a null pointer in
case of failure. This patch updates several wrong error checks in
WebKit2.
* Platform/IPC/ArgumentEncoder.cpp:
(IPC::allocBuffer):
(IPC::ArgumentEncoder::reserve):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::sendOutgoingMessage):
2015-02-05 Brian J. Burg <burg@cs.washington.edu>
Clean up WebInspectorProxy and use simpler inspector levels design
https://bugs.webkit.org/show_bug.cgi?id=141135
Reviewed by Timothy Hatcher.
Inspector levels used to be managed by keeping a set of WebPageGroup
instances and doing pointer comparisons to check whether the inspected
view is itself a web inspector instance. This is unnecessary, as we
can maintain a mapping from WebPageProxy* to its corresponding level.
When an inspector instance is created, it is inserted into the mapping
along with its level. An inspector's level is 1 unless its inspected page
is in the mapping, then it is one greater that the inspected page's level.
The level is provided by inspectorLevel(), rather than a member variable.
WebInspectorProxy is created in the constructor of WebPageProxy. Thus, there
would be no chance to add the inspector page's level to the mapping before the
next level inspector tries to look it up when initializing its members.
This patch introduces other miscellaneous cleanups, such as naming m_page
to m_inspectedPage, using Ref and using an enum class for the attachment side.
* UIProcess/API/C/WKInspector.cpp:
(WKInspectorGetPage):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(resizeWebKitWebViewBaseFromAllocation):
* UIProcess/InspectorServer/efl/WebInspectorServerEfl.cpp:
* UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::pageLevelMap):
(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::inspectorLevel):
(WebKit::WebInspectorProxy::inspectorPageGroupIdentifier):
(WebKit::WebInspectorProxy::inspectorPagePreferences):
(WebKit::WebInspectorProxy::invalidate):
(WebKit::WebInspectorProxy::isFront):
(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::show):
(WebKit::WebInspectorProxy::hide):
(WebKit::WebInspectorProxy::close):
(WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess):
(WebKit::WebInspectorProxy::showConsole):
(WebKit::WebInspectorProxy::showResources):
(WebKit::WebInspectorProxy::showMainResourceForFrame):
(WebKit::WebInspectorProxy::attachBottom):
(WebKit::WebInspectorProxy::attachRight):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::togglePageProfiling):
(WebKit::WebInspectorProxy::isInspectorPage):
(WebKit::decidePolicyForNavigationAction):
(WebKit::WebInspectorProxy::remoteFrontendConnected):
(WebKit::WebInspectorProxy::remoteFrontendDisconnected):
(WebKit::WebInspectorProxy::dispatchMessageFromRemoteFrontend):
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::didClose):
(WebKit::WebInspectorPageGroups::singleton): Deleted.
(WebKit::WebInspectorPageGroups::inspectorLevel): Deleted.
(WebKit::WebInspectorPageGroups::isInspectorPageGroup): Deleted.
(WebKit::WebInspectorPageGroups::inspectorPageGroupLevel): Deleted.
(WebKit::WebInspectorPageGroups::inspectorPageGroupForLevel): Deleted.
(WebKit::WebInspectorPageGroups::createInspectorPageGroup): Deleted.
(WebKit::WebInspectorProxy::~WebInspectorProxy): Deleted.
(WebKit::WebInspectorProxy::inspectorPageGroup): Deleted.
(WebKit::WebInspectorProxy::setAttachedWindowHeight): Deleted.
(WebKit::WebInspectorProxy::enableRemoteInspection): Deleted.
(WebKit::WebInspectorProxy::open): Deleted.
* UIProcess/WebInspectorProxy.h:
(WebKit::WebInspectorProxy::create):
(WebKit::WebInspectorProxy::inspectedPage):
(WebKit::WebInspectorProxy::page): Deleted.
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::dockButtonClicked):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorProxy::platformSetAttachedWindowWidth):
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter attachRight:]):
(-[WKWebInspectorProxyObjCAdapter attachBottom:]):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformBringToFront):
(WebKit::WebInspectorProxy::windowFrameDidChange):
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(-[WKWebInspectorProxyObjCAdapter close]): Deleted.
2015-02-05 Chris Dumez <cdumez@apple.com>
[WK2][Cocoa] Populate m_contentsFilter bloom filter from the main dispatch queue NetworkCacheStorage::initialize()
https://bugs.webkit.org/show_bug.cgi?id=141297
Reviewed by Antti Koivisto.
Populate m_contentsFilter bloom filter from the main dispatch queue
NetworkCacheStorage::initialize() to avoid thread-safety issues.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::initialize):
2015-02-05 Chris Dumez <cdumez@apple.com>
Use deleteFile() in NetworkCacheStorageCocoa.mm
https://bugs.webkit.org/show_bug.cgi?id=141299
Reviewed by Antti Koivisto.
Use deleteFile() in NetworkCacheStorageCocoa.mm to simplify the code
a bit.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
2015-02-04 Antti Koivisto <antti@apple.com>
Avoid copying std::functions across threads in NetworkCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=141273
Reviewed by Andreas Kling.
The current approach is risky. There is possiblity that captured variables are
deleted in an unexpected thread.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::retrieve):
The capture trick here is no longer needed.
* NetworkProcess/cache/NetworkCacheStorage.h:
For each cache operation we create Retrive/Store/UpdateOperation object kept alive by the active operation map.
This object captures all parameters of the operation including the lambda. When the operation completes
the object is removed from the map in the main thread, ensuring safe destruction.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::dispatchRetrieveOperation):
(WebKit::NetworkCacheStorage::dispatchPendingRetrieveOperations):
(WebKit::retrieveActive):
Instead of maintaining a separate write cache we just look through the active write and update maps.
(WebKit::NetworkCacheStorage::retrieve):
Use fixed sized priority array rather than a dynamic one. Vector<Deque<std::unique_ptr>> doesn't quite work.
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
(WebKit::NetworkCacheStorage::clear):
2015-02-05 Youenn Fablet <youenn.fablet@crf.canon.fr> and Xabier Rodriguez Calvar <calvaris@igalia.com>
[Streams API] Implement a barebone ReadableStream interface
https://bugs.webkit.org/show_bug.cgi?id=141045
Reviewed by Benjamin Poulain.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
2015-02-04 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Selection callout does not follow selection when double-tap scrolling
https://bugs.webkit.org/show_bug.cgi?id=141214
Reviewed by Benjamin Poulain.
Implement the delegate that gets called after UIScrollView
setContentOffset animations. When scrolling to a rect, do the normal
willScroll, didScroll actions to update the selection assistant.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToRect:origin:minimumScrollDistance:]):
(-[WKWebView scrollViewDidEndScrollingAnimation:]):
2015-02-04 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Layers that are created and destroyed in the same transaction shouldn't be encoded
https://bugs.webkit.org/show_bug.cgi?id=141228
Reviewed by Tim Horton.
With UI-side compositing, it was possible for layers to get created and
destroyed in the same transaction (e.g. two layouts before a single layer
tree commit). When that happened we would encode layer creation properties
but not encode layer properties, since the layer would be unreachable.
Fix by removing deleted layers from the created layers list, which is
converted into a map for easy searching.
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::layerWasCreated):
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
(WebKit::RemoteLayerTreeContext::buildTransaction):
2015-02-04 Michael Catanzaro <mcatanzaro@igalia.com>
Build with seccomp filters broken since r179409
https://bugs.webkit.org/show_bug.cgi?id=141206
Reviewed by Darin Adler.
Fix build by renaming SeccompBrokerClient::shared to SeccompBrokerClient::singleton.
* Shared/linux/SeccompFilters/SeccompBroker.cpp:
(WebKit::SeccompBrokerClient::singleton):
(WebKit::SeccompBroker::initialize):
(WebKit::SeccompBrokerClient::shared):
(WebKit::SeccompBroker::runLoop):
2015-02-04 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Assert in ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren() on tab switching
https://bugs.webkit.org/show_bug.cgi?id=141223
rdar://problem/18458993
Reviewed by Tim Horton.
It's possible to submit a RemoteLayerTree transaction that contains data
about a created layer, but doesn't have any properties for that layer. This
happens when the newly created layer isn't reached during the traversal that
gathers layer properties (i.e. it's not rooted). However, whether we create
a scrolling layer or not requires having properties; they are missing, so we
create a normal layer, but then the scrolling tree commit asserts that we
should have a scrolling layer.
Fix by making scrolling layers have a corresponding layer type, which is
stored in layer creation properties. This required exposing layer types
up through GraphicsLayer, but that allows for some nice cleanup:
1. No need to have the hokey shouldUseTiledBacking() GraphicsLayerClient hack
for creating the page tiled layer.
2. The notion of "custom behaviors" can be removed from GraphicsLayer entirely.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext):
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::customBehavior): Deleted.
(WebKit::PlatformCALayerRemote::updateCustomBehavior): Deleted.
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::createGraphicsLayer):
2015-02-04 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][WK2] Manage failing API tests
https://bugs.webkit.org/show_bug.cgi?id=141250
Reviewed by Csaba Osztrogonác.
* PlatformEfl.cmake: Skip to test test_ewk2_storage_manager.
* UIProcess/API/efl/tests/test_ewk2_view.cpp: Disable 2 unit test functions.
(TEST_F):
2015-02-04 Chris Dumez <cdumez@apple.com>
Add removeFirst(value) / removeAll(value) methods to WTF::Vector
https://bugs.webkit.org/show_bug.cgi?id=141192
Reviewed by Benjamin Poulain.
Use new Vector::removeFirst(value) / removeAll(value) API to simplify the
code a bit.
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:
(WebKit::WebSoupCustomProtocolRequestManager::unregisterSchemeForCustomProtocol):
* UIProcess/PageLoadState.cpp:
(WebKit::PageLoadState::removeObserver):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
* WebProcess/InjectedBundle/API/efl/ewk_extension.cpp:
(EwkExtension::remove):
2015-02-03 Chris Dumez <cdumez@apple.com>
Unreviewed attempt to fix GTK/EFL build after r179588.
Add new files to CMakeLists.txt.
* CMakeLists.txt:
2015-02-03 Shivakumar JM <shiva.jm@samsung.com>
Fix build warning in WebKit2/Platform/IPC module.
https://bugs.webkit.org/show_bug.cgi?id=141229
Reviewed by Chris Dumez.
Fix build warning by using UNUSED_PARAM macro.
* Platform/IPC/Connection.cpp:
(IPC::Connection::sendMessage):
2015-02-03 Tim Horton <timothy_horton@apple.com>
Add WKPageNavigationClient as C SPI around API::NavigationClient, and adopt in WKTR
https://bugs.webkit.org/show_bug.cgi?id=141217
* UIProcess/API/C/WKPageRenderingProgressEventsInternal.h:
Include, not import.
2015-02-03 Tim Horton <timothy_horton@apple.com>
Add WKPageNavigationClient as C SPI around API::NavigationClient, and adopt in WKTR
https://bugs.webkit.org/show_bug.cgi?id=141217
Reviewed by Sam Weinig.
* Shared/API/c/WKBase.h:
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKFrameInfoRef.cpp: Added.
(WKFrameInfoGetTypeID):
* UIProcess/API/C/WKFrameInfoRef.h: Added.
* UIProcess/API/C/WKNavigationActionRef.cpp: Added.
(WKNavigationActionGetTypeID):
* UIProcess/API/C/WKNavigationActionRef.h: Added.
* UIProcess/API/C/WKNavigationRef.cpp: Added.
(WKNavigationGetTypeID):
* UIProcess/API/C/WKNavigationRef.h: Added.
* UIProcess/API/C/WKNavigationResponseRef.cpp: Added.
(WKNavigationResponseGetTypeID):
(WKNavigationResponseCanShowMIMEType):
* UIProcess/API/C/WKNavigationResponseRef.h: Added.
Add tiny C wrappers around API::{FrameInfo, NavigationAction, Navigation, NavigationResponse}.
* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::decidePolicyForPluginLoad):
Add a default implementation of decidePolicyForPluginLoad.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageNavigationClient):
* UIProcess/API/C/WKPage.h:
Add WKPageSetPageNavigationClient, which connects API::NavigationClient to
the new WKPageNavigationClient C SPI.
* UIProcess/API/C/WKPageNavigationClient.h: Added.
Add WKPageNavigationClient, which one can use in place of WKPageLoaderClient
and WKPagePolicyClient and which has the same semantics as the Modern ObjC API
(including things like API::Navigation as WKNavigationRef, etc.)
* UIProcess/API/C/WKPageLoaderClient.h:
* UIProcess/API/C/WKPageRenderingProgressEvents.h: Added.
* UIProcess/API/C/WKPageRenderingProgressEventsInternal.h: Added.
(pageRenderingProgressEvents):
* UIProcess/API/C/WKPluginLoadPolicy.h: Added.
Pull some enums out into their own files (WKPageRenderingProgressEvents is
duplicated from the Modern ObjC API's _WKRenderingProgressEvents, WKPluginLoadPolicy
is pulled out of WKPageLoaderClient).
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findPlugin):
Add an equivalent of pluginLoadPolicy to the NavigationClient.
* WebKit2.xcodeproj/project.pbxproj:
2015-02-03 Timothy Horton <timothy_horton@apple.com>
Every PageOverlayClientImpl leaks
https://bugs.webkit.org/show_bug.cgi?id=141224
<rdar://problem/19652939>
Reviewed by Simon Fraser.
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(WKBundlePageOverlayCreate):
* WebProcess/WebPage/WebPageOverlay.cpp:
(WebKit::WebPageOverlay::create):
(WebKit::WebPageOverlay::WebPageOverlay):
(WebKit::WebPageOverlay::pageOverlayDestroyed):
(WebKit::WebPageOverlay::willMoveToPage):
(WebKit::WebPageOverlay::didMoveToPage):
(WebKit::WebPageOverlay::drawRect):
(WebKit::WebPageOverlay::mouseEvent):
(WebKit::WebPageOverlay::didScrollFrame):
(WebKit::WebPageOverlay::actionContextForResultAtPoint):
(WebKit::WebPageOverlay::dataDetectorsDidPresentUI):
(WebKit::WebPageOverlay::dataDetectorsDidChangeUI):
(WebKit::WebPageOverlay::dataDetectorsDidHideUI):
(WebKit::WebPageOverlay::copyAccessibilityAttributeStringValueForPoint):
(WebKit::WebPageOverlay::copyAccessibilityAttributeBoolValueForPoint):
(WebKit::WebPageOverlay::copyAccessibilityAttributeNames):
* WebProcess/WebPage/WebPageOverlay.h:
(WebKit::WebPageOverlay::client):
Keep the PageOverlayClientImpl as a unique_ptr instead of a leaked reference,
ensuring that it's cleaned up when the WebPageOverlay is torn down.
2015-02-03 Chris Dumez <cdumez@apple.com>
Drop ResourceLoadPriorityUnresolved resource load priority and use Optional<> instead
https://bugs.webkit.org/show_bug.cgi?id=141186
Reviewed by Antti Koivisto.
Update code now that ResourceLoadPriorityUnresolved is not longer a
ResourceLoadPriority enum value.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::retrieve):
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
2015-02-03 Enrica Casucci <enrica@apple.com>
[iOS] Add support for deleteFromInputWithFlags.
https://bugs.webkit.org/show_bug.cgi?id=141216
rdar://problem/19130081
Reviewed by Benjamin Poulain.
Adopts the new method as soon as it is available.
The patch also removes some obsolete code used for staging.
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _interpretKeyEvent:isCharEvent:]):
2015-02-03 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Selection Callout should not immediately disappear on pages with frequent layouts
https://bugs.webkit.org/show_bug.cgi?id=141210
Reviewed by Enrica Casucci.
In iOS WebKit2 in order to keep caret refreshes in sync with WebCore layouts
the selection assistant is told to update whenever WebKit's layer tree
commits. Unfortunately, for pages with JavaScript animation that are
frequently doing a layout / layer tree update, this would trigger very
frequent selection updates that would keep the caret from blinking and
dismiss any selection callouts.
This change tracks the last selection drawing information so that we can
avoid informing the assistant of a selection updates unless it has changed
visually or needs to redraw (zoom).
* Shared/EditorState.cpp:
Remove include already in header.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(WebKit::operator==):
(WebKit::operator!=):
(-[WKContentView observeValueForKeyPath:ofObject:change:context:]):
When zooming, force the selection update, even though the drawing
information hasn't changed, the views will need to be updated.
(-[WKContentView _updateChangedSelection]):
(-[WKContentView _updateChangedSelection:]):
Monitor EditorState for changes in selection drawing and avoid
informing the selection assistant unless necessary.
2015-02-03 Jeremy Jones <jeremyj@apple.com>
Prevent flicker when exiting fullscreen by synchronizing transactions.
https://bugs.webkit.org/show_bug.cgi?id=140897
Reviewed by Tim Horton.
Flush transactions before removing layerHost. This allows existing transactions to be completed before the hosting layer disappears.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen):
2015-02-03 Brian J. Burg <burg@cs.washington.edu>
Convert WebInspectorProxy to use WKWebView API for the inspector view
https://bugs.webkit.org/show_bug.cgi?id=141037
Reviewed by Timothy Hatcher.
Use the newer API for PLATFORM(MAC). The main difference is that the
WKWebView's page group cannot be set directly; instead, the group identifier
is passed. Also add some preference setters needed for the inspector.
Refactor some code to not use page groups directly. In a future patch,
the PageGroup-based inspector level system will be simplified. It is
it is no longer necessary to keep a static map of PageGroup instances,
since they are only used to save inspector window preferences. (These used
to prevent all levels of inspector from pausing together when a second-level
inspector hit a breakpoint. This is not necessary with multi-process
web inspectors.)
Also, adjust window resizing behavior when the inspector is docked to
the right. Window width resizes should not affect the width of the inspector
frame. This matches the behavior of height changes when docked to the bottom.
To support 32-bit Mac builds where WKWebView is not defined, share the stub
platformFoo() implementations with PLATFORM(IOS). The stubs are now located
in the platform-independent WebInspectorProxy.cpp.
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _logsPageMessagesToSystemConsoleEnabled]): Added.
(-[WKPreferences _setLogsPageMessagesToSystemConsoleEnabled:]): Added.
(-[WKPreferences _allowFileAccessFromFileURLs]): Added.
(-[WKPreferences _setAllowFileAccessFromFileURLs:]): Added.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::inspectorPagePreferences):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::setAttachedWindowHeight):
(WebKit::WebInspectorProxy::setAttachedWindowWidth):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::shouldOpenAttached):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformOpen):
(WebKit::WebInspectorProxy::platformDidClose):
(WebKit::WebInspectorProxy::platformInvalidate):
(WebKit::WebInspectorProxy::platformBringToFront):
(WebKit::WebInspectorProxy::platformHide):
(WebKit::WebInspectorProxy::platformIsFront):
(WebKit::WebInspectorProxy::platformInspectedURLChanged):
(WebKit::WebInspectorProxy::platformSave):
(WebKit::WebInspectorProxy::platformAppend):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorProxy::platformSetToolbarHeight):
(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):
(WebKit::WebInspectorProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):
* UIProcess/WebInspectorProxy.h:
* UIProcess/ios/WebInspectorProxyIOS.mm: Removed.
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorWKWebView _didRelaunchProcess]):
WKWebView doesn't implement this, so remove the super call.
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::createDockButton):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformAttach):
(-[WKWebInspectorWKView _didRelaunchProcess]): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
2015-02-03 Antti Koivisto <antti@apple.com>
Memory cache for resources pending disk write
https://bugs.webkit.org/show_bug.cgi?id=141159
Reviewed by Andreas Kling.
If a resource was requested from the disk cache before it has been written we ended up
loading it again. Add a short lived memory cache to avoid this.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::decodeStorageEntry):
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCacheStorage::Data::isMap):
Add a way to know whether a Data is backed by map or not. SharedMemory does not work correctly
if it is not a map.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::Data::Data):
(WebKit::NetworkCacheStorage::initialize):
Also do some renaming.
(WebKit::decodeEntry):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
2015-02-02 Antti Koivisto <antti@apple.com>
Update cache header after revalidation without rewriting the body data
https://bugs.webkit.org/show_bug.cgi?id=141182
Reviewed by Andreas Kling.
Currently we just rewrite the entire entry after revalidation.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::decodeStorageEntry):
Include the strorage entry to the cache response so we can more easily update it.
(WebKit::NetworkCache::update):
Call the storage update function with the new and the exisiting storage entry.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::openFileForKey):
Added an option for opening a file for writing without creating a new one.
Renamed for clarity.
(WebKit::encodeEntryHeader):
Separate header encoding to a function.
(WebKit::encodeEntry):
(WebKit::NetworkCacheStorage::dispatchRetrieveOperation):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::update):
New update function.
If the page-rounded header size would stay unchanged we can just write the new header over the old one.
In the unlikely event it doesn't we rewrite the whole thing.
(WebKit::createIOChannelForKey): Deleted.
2015-02-02 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r179540.
https://bugs.webkit.org/show_bug.cgi?id=141190
need further investigation to fix !WK_API_ENABLED (32bit)
build. (Requested by brrian_ on #webkit).
Reverted changeset:
"Convert WebInspectorProxy to use WKWebView API for the
inspector view"
https://bugs.webkit.org/show_bug.cgi?id=141037
http://trac.webkit.org/changeset/179540
2015-02-02 Brian J. Burg <burg@cs.washington.edu>
Convert WebInspectorProxy to use WKWebView API for the inspector view
https://bugs.webkit.org/show_bug.cgi?id=141037
Reviewed by Timothy Hatcher.
Use the newer API for PLATFORM(MAC). The main difference is that the
WKWebView's page group cannot be set directly; instead, the group identifier
is passed. Also add some preference setters needed for the inspector.
Refactor some code to not use page groups directly. In a future patch,
the PageGroup-based inspector level system will be simplified. It is
it is no longer necessary to keep a static map of PageGroup instances,
since they are only used to save inspector window preferences. (These used
to prevent all levels of inspector from pausing together when a second-level
inspector hit a breakpoint. This is not necessary with multi-process
web inspectors.)
Also, adjust window resizing behavior when the inspector is docked to
the right. Window width resizes should not affect the width of the inspector
frame. This matches the behavior of height changes when docked to the bottom.
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _logsPageMessagesToSystemConsoleEnabled]): Added.
(-[WKPreferences _setLogsPageMessagesToSystemConsoleEnabled:]): Added.
(-[WKPreferences _allowFileAccessFromFileURLs]): Added.
(-[WKPreferences _setAllowFileAccessFromFileURLs:]): Added.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::inspectorPagePreferences): Added.
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::setAttachedWindowHeight):
(WebKit::WebInspectorProxy::setAttachedWindowWidth):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::shouldOpenAttached):
* UIProcess/WebInspectorProxy.h: Use default member initializers.
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorWKWebView _didRelaunchProcess]):
WKWebView doesn't implement this, so remove the super call.
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::createDockButton):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformAttach):
(-[WKWebInspectorWKView _didRelaunchProcess]): Deleted.
2015-02-02 Chris Dumez <cdumez@apple.com>
Make NetworkCache's constructor private
https://bugs.webkit.org/show_bug.cgi?id=141181
Reviewed by Antti Koivisto.
Make NetworkCache's constructor private and mark its destructor as
deleted as it is a singleton class.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::NetworkCache): Deleted.
* NetworkProcess/cache/NetworkCache.h:
2015-02-02 Filip Pizlo <fpizlo@apple.com>
Revert accidental (and super bad) change in r179490.
* WebProcess/com.apple.WebProcess.sb.in:
2015-02-02 Chris Dumez <cdumez@apple.com>
Access MemoryCache singleton using MemoryCache::singleton()
https://bugs.webkit.org/show_bug.cgi?id=141104
Reviewed by Andreas Kling.
Access MemoryCache singleton using MemoryCache::singleton() static
member function, instead of a free function, as per the recent
coding style discussion on WebKit-dev.
2015-02-02 Jeremy Jones <jeremyj@apple.com>
Prevent crash when accessing WebAVPlayerController.delegate.
https://bugs.webkit.org/show_bug.cgi?id=140893
Reviewed by Darin Adler.
Plumb new resetMediaState() through IPC interface WebVideoFullscreenManagerProxy.
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::invalidate): remove redundant set to nullptr.
* WebProcess/ios/WebVideoFullscreenManager.h:
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::resetMediaState):
2015-02-01 Chris Dumez <cdumez@apple.com>
Use more references in HistoryItem
https://bugs.webkit.org/show_bug.cgi?id=141133
Reviewed by Andreas Kling.
Use more references in HistoryItem instead of pointers.
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
(WebKit::InjectedBundleBackForwardListItem::children):
* WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toFrameState):
(WebKit::applyFrameState):
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::addItem):
* WebProcess/WebPage/WebBackForwardListProxy.h:
2015-02-01 Dan Bernstein <mitz@apple.com>
Remove ViewGestureController tracing
https://bugs.webkit.org/show_bug.cgi?id=141137
Reviewed by Tim Horton.
Remove the tracing added in r176133, now that http://webkit.org/b/138750 is fixed.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):
(WebKit::ViewGestureController::willCommitPostSwipeTransitionLayerTree):
(WebKit::ViewGestureController::removeSwipeSnapshot):
(WebKit::addLogEntry): Deleted.
(WebKit::dumpLogEntries): Deleted.
* UIProcess/mac/ViewGestureController.h:
2015-01-31 Sam Weinig <sam@webkit.org>
Remove even more Mountain Lion support
https://bugs.webkit.org/show_bug.cgi?id=141124
Reviewed by Alexey Proskuryakov.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebContentService.Development.xcconfig:
* Configurations/WebContentService.xcconfig:
* Configurations/WebKit.xcconfig:
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2015-01-31 Antti Koivisto <antti@apple.com>
Enable WebKit disk cache on OS X
https://bugs.webkit.org/show_bug.cgi?id=141022
Reviewed by Gavin Barraclough.
* config.h: Flip the switch.
2015-01-31 Antti Koivisto <antti@apple.com>
Unreviewed, rolling out r179447.
Forgot to include the test.
Reverted changeset:
"Enable WebKit disk cache on OS X"
https://bugs.webkit.org/show_bug.cgi?id=141022
http://trac.webkit.org/changeset/179447
2015-01-31 Antti Koivisto <antti@apple.com>
Enable WebKit disk cache on OS X
https://bugs.webkit.org/show_bug.cgi?id=141022
Reviewed by Gavin Barraclough.
* config.h: Flip the switch.
2015-01-31 Antti Koivisto <antti@apple.com>
OSObjectPtr does not work with dispatch_data_t on Maverics
https://bugs.webkit.org/show_bug.cgi?id=141081
Reviewed by Zalan Bujtas.
Previous attempt to special case dispatch_data_t in OSObjectPtr didn't work in all cases
probably due to the context sensitivity of the definition of the dispatch_data_t type.
For now, add DispatchPtr for the cache code and use it.
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::DispatchPtr::DispatchPtr):
(WebKit::DispatchPtr::~DispatchPtr):
(WebKit::DispatchPtr::operator=):
(WebKit::DispatchPtr::get):
(WebKit::DispatchPtr::operator bool):
(WebKit::adoptDispatch):
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::Data::Data):
(WebKit::NetworkCacheStorage::Data::data):
(WebKit::NetworkCacheStorage::NetworkCacheStorage):
(WebKit::createIOChannelForKey):
(WebKit::decodeEntry):
(WebKit::encodeEntryMetaData):
(WebKit::encodeEntry):
2015-01-30 Tim Horton <timothy_horton@apple.com>
Add and hook up APINavigationClient
https://bugs.webkit.org/show_bug.cgi?id=140698
Reviewed by Sam Weinig.
Add a single APINavigationClient that NavigationState implements and
WebPageProxy prefers over APILoaderClient and APIPolicyClient.
* UIProcess/API/APILoaderClient.h:
Fix a comment.
* UIProcess/API/APINavigationClient.h: Added.
APINavigationClient is the union of NavigationState's overrides of APILoaderClient and APIPolicyClient.
Names are adjusted to more closely match the Modern API.
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
Instead of having policy and loader clients, NavigationState has a single navigation client.
Adjust as necessary.
Move as much logic as possible (isMainFrame checks, construction of API objects) out of here
and into WebPageProxy.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
Install the aforementioned single navigation client.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setNavigationClient):
Add a navigation client setter.
For all policy and loader client calls, if we have a navigation client, use that;
otherwise, fall back on the policy and loader clients.
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
2015-01-30 Chris Dumez <cdumez@apple.com>
Update MemoryCache code to use more references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=141099
Reviewed by Andreas Kling.
* WebProcess/ResourceCache/WebResourceCacheManager.cpp:
(WebKit::WebResourceCacheManager::clearCacheForOrigin):
2015-01-30 Chris Dumez <cdumez@apple.com>
Rename shared() static member functions to singleton() for singleton classes.
https://bugs.webkit.org/show_bug.cgi?id=141088
Reviewed by Ryosuke Niwa and Benjamin Poulain.
Rename shared() static member functions to singleton() for singleton
classes as per the recent coding style change.
2015-01-30 Alexey Proskuryakov <ap@apple.com>
Build fix.
* Shared/API/c/WKDeprecatedFunctions.cpp:
* UIProcess/API/C/WKPreferencesRefPrivate.h:
The screen font substitution functions still need to be present in the header.
2015-01-29 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Resize the redirected XComposite again after leaving accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=140935
Reviewed by Sergio Villar Senin.
Since r178414 we don't resize the redirected XComposite window
until we enter accelerated compositing mode, but after leaving it
the redirected window keeps its size. We should resize it to 1x1
again and free the XPixmap and cairo surface to save that memory
while not in accelerated compositing mode.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::enterAcceleratedCompositingMode): Notify
the WebKitWebViewBase.
(WebKit::PageClientImpl::exitAcceleratedCompositingMode): Ditto.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseEnterAcceleratedCompositingMode): Resize the
XComposite window to the current drawing area size.
(webkitWebViewBaseExitAcceleratedCompositingMode): Resize the
XComposite window to and empty size.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
Do not initialize m_size since we now handle the empty size as a
especial case. Make sure we always create the X window with at
least 1x1 size.
(WebKit::RedirectedXCompositeWindow::resize): Resize the window to
at least 1x1, but when en empty size is given, call
cleanupPixmapAndPixmapSurface() to release those resources.
(WebKit::RedirectedXCompositeWindow::surface): Create the cairo
surface with at least 1x1 size.
2015-01-29 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Runtime critical warnings sometimes at start up when using the network process
https://bugs.webkit.org/show_bug.cgi?id=140998
Reviewed by Žan Doberšek.
This is caused by the CustomProtocolManager work queue
theread. This WorkQueue is created when the CustomProtocolManager
object is constructed, but destroyed when it's initialized when
the UI process asks to use the network process. In this case,
sometimes happens that the work queue thread that runs the main
loop is executed once the object has been destroyed and the main
loop pointer is nullptr.
* Platform/WorkQueue.h:
* Platform/gtk/WorkQueueGtk.cpp:
(WorkQueue::platformInitialize): Use a lambda function for the
thread body.
(WorkQueue::platformInvalidate): Detach the worker thread before
deleting the main loop object.
(WorkQueue::startWorkQueueThread): Deleted.
(WorkQueue::workQueueThreadBody): Deleted.
2015-01-29 Beth Dakin <bdakin@apple.com>
Another follow-on, spotted this mistake. This used to be
#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 , so it should now be
COCOA.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):
2015-01-29 Beth Dakin <bdakin@apple.com>
Follow-on, fixing a bad merge from my last change.
* Shared/WebPreferencesDefinitions.h:
2015-01-29 Beth Dakin <bdakin@apple.com>
Remove more Mountain Lion code from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=141052
Reviewed by Tim Horton.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::sendBufferMaybeAborting):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* NetworkProcess/mac/NetworkDiskCacheMonitor.mm:
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::willCacheResponseAsync):
* Platform/IPC/MessageDecoder.cpp:
* Platform/IPC/MessageDecoder.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::ConnectionTerminationWatchdog::watchdogTimerFired):
(IPC::Connection::open):
(IPC::Connection::receiveSourceEventHandler):
(IPC::Connection::kill):
* Platform/IPC/mac/ImportanceAssertion.h:
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::initializeProcessName):
* Shared/WebPreferencesDefinitions.h:
* Shared/mac/ChildProcessMac.mm:
(WebKit::initializeTimerCoalescingPolicy):
(WebKit::ChildProcess::setApplicationIsDaemon):
(WebKit::ChildProcess::platformInitialize):
(WebKit::ChildProcess::setQOS):
* Shared/mac/CookieStorageShim.mm:
(WebKit::CookieStorageShim::initialize):
* UIProcess/API/mac/WKView.mm:
(-[WKView addWindowObserversForWindow:]):
(-[WKView removeWindowObservers]):
(-[WKView _windowDidChangeOcclusionState:]):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
(WebKit::privateBrowsingSession):
(WebKit::WebProcessPool::isURLKnownHSTSHost):
(WebKit::WebProcessPool::resetHSTSHosts):
* UIProcess/Databases/mac/DatabaseProcessProxyMac.mm:
(WebKit::shouldUseXPC):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
* UIProcess/WebProcessPool.h:
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::shouldAutomaticQuoteSubstitutionBeEnabled):
(WebKit::shouldAutomaticDashSubstitutionBeEnabled):
(WebKit::TextChecker::didChangeAutomaticQuoteSubstitutionEnabled):
(WebKit::TextChecker::didChangeAutomaticDashSubstitutionEnabled):
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::applyDebuggingPropertiesToSwipeViews):
* UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::shouldUseXPC):
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::updateActivePages):
* WebProcess/com.apple.WebProcess.sb.in:
* config.h:
2015-01-29 Sam Weinig <sam@webkit.org>
Remove support for screen font substitution
https://bugs.webkit.org/show_bug.cgi?id=141038
Reviewed by Tim Horton.
* Shared/API/c/WKDeprecatedFunctions.cpp:
(WKPreferencesSetScreenFontSubstitutionEnabled):
(WKPreferencesGetScreenFontSubstitutionEnabled):
Move now empty preferences SPI to WKDeprecatedFunctions.
* Shared/WebPreferencesDefinitions.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetScreenFontSubstitutionEnabled): Deleted.
(WKPreferencesGetScreenFontSubstitutionEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::presenterApplicationPid):
(WebKit::WebProcess::shouldForceScreenFontSubstitution): Deleted.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Stop piping screen font substitution setting to the web process.
2015-01-29 Alexey Proskuryakov <ap@apple.com>
Frequent kernel panics when running WebKit regression tests
https://bugs.webkit.org/show_bug.cgi?id=141043
Reviewed by Sam Weinig.
Split PluginService.Development into 32-bit and 64-bit variants, to better match
production variant. When building FAT, we'll have the right architecture from
the start now, so no need to re-exec into a different architecture.
* Configurations/PluginService.Development.xcconfig: Removed.
* Configurations/PluginService.32.Development.xcconfig: Copied from Source/WebKit2/Configurations/PluginService.Development.xcconfig.
* Configurations/PluginService.64.Development.xcconfig: Copied from Source/WebKit2/Configurations/PluginService.Development.xcconfig.
Changed to use ONLY_ACTIVE_ARCH instead of CONFIGURATION, so that we build the
right thing even in debug FAT builds.
* Configurations/PluginService.32.xcconfig:
* Configurations/PluginService.64.xcconfig:
While at it, applied the same changes as in Development variants. This means that
FAT builds will now build only the correct architecture for PluginService.64
(it used to build FAT, unnecessarily).
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
Updated to support multiple product names.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::serviceName): Launch the
right development service.
* WebKit2.xcodeproj/project.pbxproj: Split the Plugin.Development target into two.
2015-01-29 Tim Horton <timothy_horton@apple.com>
Fix the build with newer Clang
* NetworkProcess/NetworkConnectionToWebProcess.h:
These should be 'override's.
2015-01-29 Chris Dumez <cdumez@apple.com>
Clean up / modernize PageCache class
https://bugs.webkit.org/show_bug.cgi?id=141009
Reviewed by Darin Adler.
Clean up / modernize PageCache class.
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::removeItem):
(WebKit::WebBackForwardListProxy::close):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::goForward):
(WebKit::WebPage::goBack):
(WebKit::WebPage::goToBackForwardItem):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::releasePageCache):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel):
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformSetCacheModel):
2015-01-29 Csaba Osztrogonác <ossy@webkit.org>
[EFL][GTK] Fix the build after r179326
https://bugs.webkit.org/show_bug.cgi?id=141027
Reviewed by Alexey Proskuryakov.
Guard MessageRecorder implementation with USE(DTRACE)
for platforms not supporting DTrace.
Original patch by Carlos Garcia Campos <cgarcia@igalia.com>
* Platform/IPC/ArgumentCoders.cpp:
* Platform/IPC/ArgumentCoders.h:
* Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::sendMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchMessage):
* Platform/IPC/MessageDecoder.cpp:
(IPC::MessageDecoder::MessageDecoder):
* Platform/IPC/MessageDecoder.h:
* Platform/IPC/MessageEncoder.cpp:
(IPC::MessageEncoder::MessageEncoder):
(IPC::MessageEncoder::encodeHeader):
* Platform/IPC/MessageEncoder.h:
* Platform/IPC/MessageRecorder.h:
2015-01-29 Tim Horton <timothy_horton@apple.com>
Avoid manually handling quickLookWithEvent: if the immediate action gesture recognizer will do Lookup for us
https://bugs.webkit.orgshow_bug.cgi?id=141018
<rdar://problem/19619999>
* UIProcess/API/mac/WKView.mm:
(-[WKView quickLookWithEvent:]):
Yosemite is 101000, not 10100.
2015-01-28 Tim Horton <timothy_horton@apple.com>
Add API::{FrameInfo, NavigationAction, NavigationResponse} types
https://bugs.webkit.org/show_bug.cgi?id=140982
Reviewed by Sam Weinig.
Make C++ API objects for WK{FrameInfo, NavigationAction, NavigationResponse}
to wrap around, as a step towards moving Modern API logic down into WebPageProxy.
* Shared/API/APIObject.h:
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* UIProcess/API/APIFrameInfo.cpp: Added.
* UIProcess/API/APIFrameInfo.h: Added.
* UIProcess/API/APINavigationAction.h: Added.
* UIProcess/API/APINavigationResponse.h: Added.
Add API::FrameInfo, API::NavigationAction, and API::NavigationResponse.
* UIProcess/API/Cocoa/WKFrameInfo.mm:
* UIProcess/API/Cocoa/WKFrameInfoInternal.h:
Make WKFrameInfo a WKObject, wrapping a API::FrameInfo.
* UIProcess/API/Cocoa/WKNavigationAction.mm:
* UIProcess/API/Cocoa/WKNavigationActionInternal.h:
Make WKNavigationAction a WKObject, wrapping a API::NavigationAction.
* UIProcess/API/Cocoa/WKNavigationResponse.mm:
* UIProcess/API/Cocoa/WKNavigationResponseInternal.h:
Make WKNavigationResponse a WKObject, wrapping a API::NavigationResponse.
* UIProcess/API/Cocoa/WKUserContentController.mm:
Adopt API::FrameInfo.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
Adopt API::FrameInfo, and reorganize the code slightly.
Adopt API::NavigationAction.
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):
Adopt API::FrameInfo.
Adopt API::NavigationResponse.
(WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
Adopt API::FrameInfo.
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
Adopt API::FrameInfo.
* WebKit2.xcodeproj/project.pbxproj:
2015-01-28 Antti Koivisto <antti@apple.com>
http/tests/xmlhttprequest/workers/methods.html sometimes times out with disk cache enabled
https://bugs.webkit.org/show_bug.cgi?id=140976
Reviewed by Chris Dumez.
The previous fix sometimes invoked the completion handler twice. Explicitly track if we
have called it or not.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::dispatchRetrieveOperation):
Also move the error case to the done branch. According to the documentation 'done' is always set on error.
2015-01-28 Timothy Horton <timothy_horton@apple.com>
Add a WebKitMessageRecorder DTrace provider, exposing IPC details to DTrace
https://bugs.webkit.org/show_bug.cgi?id=140673
Reviewed by Sam Weinig.
* Platform/IPC/ArgumentCoders.cpp:
(IPC::ArgumentCoder<uuid_t>::encode):
(IPC::ArgumentCoder<uuid_t>::decode):
* Platform/IPC/ArgumentCoders.h:
Add a uuid_t (simple) argument coder.
Fix a mis-named header-guard #ifdef.
* Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::dispatchSyncMessage):
Sync message replies inherit the message UUID from the incoming sync message.
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
Record outgoing messages. Because sendSyncMessage calls sendMessage,
we have to explicitly avoid recording the message twice.
(IPC::Connection::dispatchMessage):
Record the incoming message.
(IPC::Connection::remoteProcessID):
Add remoteProcessID(), which tries to determine the pid of the remote process.
* Platform/IPC/Connection.h:
(IPC::Connection::xpcConnection):
This can be const.
(IPC::Connection::isValid):
Make this public.
* Platform/IPC/MessageDecoder.cpp:
(IPC::MessageDecoder::MessageDecoder):
* Platform/IPC/MessageDecoder.h:
(IPC::MessageDecoder::setMessageProcessingToken):
(IPC::MessageDecoder::UUID):
Decode and store the message UUID.
Store a MessageProcessingToken for the lifetime of the MessageDecoder;
this ensures that all time spent processing the incoming message will be
counted against that message.
* Platform/IPC/MessageEncoder.cpp:
(IPC::MessageEncoder::MessageEncoder):
By default, create a new UUID for the message. Alternatively, allow clients
to pass the message UUID in (used for sync message replies).
Store the messageReceiverName and messageName.
(IPC::MessageEncoder::encodeHeader):
Factor encodeHeader() out of the constructors so most of their code can be shared.
(IPC::MessageEncoder::isSyncMessage):
(IPC::MessageEncoder::shouldDispatchMessageWhenWaitingForSyncReply):
Add getters for these flags.
* Platform/IPC/MessageEncoder.h:
(IPC::MessageEncoder::messageReceiverName):
(IPC::MessageEncoder::messageName):
(IPC::MessageEncoder::destinationID):
(IPC::MessageEncoder::UUID):
* Platform/IPC/MessageRecorder.h: Added.
* Platform/IPC/MessageRecorder.cpp: Added.
(MessageRecorder::MessageRecorder):
Add a class that interfaces with a custom DTrace provider to log incoming and outgoing messages.
(MessageRecorder::shared):
(MessageRecorder::isEnabled):
Determine if either of the message probes are enabled. If not, we'll avoid most of the
work associated with MessageRecorder.
(MessageRecorder::recordOutgoingMessage):
(MessageRecorder::recordIncomingMessage):
Build a WebKitMessageRecord and MessageProcessingToken from the Message(De|En)coder.
Once the MessageProcessingToken is deallocated, the probe will be invoked with the WebKitMessageRecord.
(MessageRecorder::MessageProcessingToken::MessageProcessingToken):
(MessageRecorder::MessageProcessingToken::~MessageProcessingToken):
Keep track of when the token is created and destroyed; these are considered the beginning
and ending "processing" times of the message (and as such the token should be kept alive for
exactly as long as the message is being processed).
* Platform/IPC/MessageRecorderProbes.d: Added.
Add a DTrace provider source file with two probes, message_sent and message_received.
The struct must match the struct in MessageRecorder.h.
* Platform/IPC/ProcessType.h: Added.
Add an enum of process types.
* WebKit2.xcodeproj/project.pbxproj:
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkProcess.h:
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Plugins/PluginProcessConnection.h:
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebProcess.h:
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/WebProcessProxy.h:
* PluginProcess/PluginProcess.h:
* PluginProcess/WebProcessConnection.h:
Annotate Connection::Clients with process types.
2015-01-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Crash closing inspected page with frequent activity
https://bugs.webkit.org/show_bug.cgi?id=140973
Reviewed by Timothy Hatcher.
* WebProcess/WebPage/WebInspector.h:
(WebKit::WebInspector::disconnectFromPage):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
Be sure to close the WebInspector connection through the page
when the page is closing so that the WebKit::WebInspector is
relinquishes itself as the InspectorFrontendChannel.
2015-01-28 Timothy Horton <timothy_horton@apple.com>
Avoid manually handling quickLookWithEvent: if the immediate action gesture recognizer will do Lookup for us
https://bugs.webkit.org/show_bug.cgi?id=141018
<rdar://problem/19619999>
Reviewed by Beth Dakin.
* UIProcess/API/mac/WKView.mm:
(-[WKView quickLookWithEvent:]):
If we have an immediate action gesture recognizer, just call super and
avoid WebKit's special quickLookWithEvent: implementation.
2015-01-28 Sungmann Cho <sungmann.cho@navercorp.com>
Remove remaining PLATFORM(WIN) code blocks from WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=140972
Reviewed by Darin Adler.
* WebProcess/Cookies/cf/WebCookieManagerCFNet.cpp:
(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
2015-01-28 Beth Dakin <bdakin@apple.com>
Remove Mountain Lion code from WebKit and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=141010
Reviewed by Sam Weinig.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox):
* Shared/mac/WebEventFactory.mm:
(WebKit::phaseForEvent):
* UIProcess/API/mac/WKView.mm:
(-[WKView quickLookWithEvent:]):
(-[WKView updateLayer]):
(-[WKView createFullScreenWindow]):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didFinishLaunching):
* UIProcess/Network/mac/NetworkProcessProxyMac.mm:
(WebKit::shouldUseXPC):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::isViewVisible):
* WebKit2Prefix.h:
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebProcess/com.apple.WebProcess.sb.in:
2015-01-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Crash when closing inspected page
https://bugs.webkit.org/show_bug.cgi?id=140968
Reviewed by Timothy Hatcher.
Handle cases where the corePage could be null. With the Inspector Process
in its own process, messages may come to the WebContentProcess after
the WebCore::Page has itself been destroyed.
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::show):
(WebKit::WebInspector::close):
(WebKit::WebInspector::openInNewTab):
(WebKit::WebInspector::evaluateScriptForTest):
(WebKit::WebInspector::showConsole):
(WebKit::WebInspector::showResources):
(WebKit::WebInspector::showMainResourceForFrame):
(WebKit::WebInspector::startPageProfiling):
(WebKit::WebInspector::stopPageProfiling):
(WebKit::WebInspector::canAttachWindow):
(WebKit::WebInspector::sendMessageToBackend):
(WebKit::WebInspector::remoteFrontendConnected):
(WebKit::WebInspector::remoteFrontendDisconnected):
2015-01-28 Sam Weinig <sam@webkit.org>
Convert WebPreferences and VisitedLinkProvider to be bridged API::Objects
https://bugs.webkit.org/show_bug.cgi?id=141002
Reviewed by Tim Horton.
* Shared/API/APIObject.h:
Add VisitedLinkProvider type.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Allocate WebPreferences and VisitedLinkProvider as their Objective-C counterpart.
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences init]):
Switch to constructInWrapper.
(-[WKPreferences dealloc]):
Call the WebPreferences destructor.
(-[WKPreferences _apiObject]):
Add implementation of the WKObject protocol.
* UIProcess/API/Cocoa/WKPreferencesInternal.h:
Convert to using ObjectStorage.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:
(-[_WKVisitedLinkProvider init]):
Switch to constructInWrapper.
(-[_WKVisitedLinkProvider dealloc]):
Call the VisitedLinkProvider destructor.
(-[_WKVisitedLinkProvider _apiObject]):
Add implementation of the WKObject protocol.
* UIProcess/API/Cocoa/_WKVisitedLinkProviderInternal.h:
Convert to using ObjectStorage.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::create):
* UIProcess/VisitedLinkProvider.h:
Switch create() to return a Ref.
* UIProcess/WebPreferences.h:
Make the constructor public for use by constructInWrapper.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
* UIProcess/WebProcessPool.h:
Store the VisitedLinkProvider in a Ref.
2015-01-28 Dana Burkart <dburkart@apple.com>
Move ASan flag settings from DebugRelease.xcconfig to Base.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=136765
Reviewed by Alexey Proskuryakov.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
2015-01-28 Chris Dumez <cdumez@apple.com>
Fix typo in markPagesForVistedLinkStyleRecalc()
https://bugs.webkit.org/show_bug.cgi?id=140977
Reviewed by Darin Adler.
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
(WebKit::VisitedLinkTableController::visitedLinkStateChanged):
(WebKit::VisitedLinkTableController::allVisitedLinkStateChanged):
(WebKit::VisitedLinkTableController::removeAllVisitedLinks):
2015-01-27 Antti Koivisto <antti@apple.com>
http/tests/xmlhttprequest/workers/methods.html sometimes times out with disk cache enabled
https://bugs.webkit.org/show_bug.cgi?id=140976
Reviewed by Chris Dumez.
Running
run-webkit-tests --release -2 http/tests/xmlhttprequest/workers/methods.html --iterations=100
would usually time out an iteration.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::dispatchRetrieveOperation):
Using dispatch_io_read with an empty file calls the handler block immediately with done boolean set
without it being an error. We failed to call the completion handler and any synchronous xhr would hang.
We may see an empty cache file if we are just in process of writing it.
Fix by handling this case specifically.
2015-01-28 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Add missing file to WebInspector compilation for GTK+.
* PlatformGTK.cmake: Add UserInterface/External/ESLint/eslint.js
2015-01-28 Chris Dumez <cdumez@apple.com>
Rename pageCache() to PageCache::shared() and return a reference
https://bugs.webkit.org/show_bug.cgi?id=140983
Reviewed by Andreas Kling.
Rename pageCache() to PageCache::shared() as this is a singleton class
and have it return a reference instead of a pointer.
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
(WebKit::VisitedLinkTableController::visitedLinkStateChanged):
(WebKit::VisitedLinkTableController::allVisitedLinkStateChanged):
(WebKit::VisitedLinkTableController::removeAllVisitedLinks):
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::removeItem):
(WebKit::WebBackForwardListProxy::close):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::releasePageCache):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel):
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformSetCacheModel):
2015-01-27 Alexey Proskuryakov <ap@apple.com>
More build fixes for newer clang.
Rubber-stamped by Anders Carlsson.
Added missing override keywords, marked some deprecated accessibility methods as such.
* PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
(WebKit::PluginProcessMainDelegate::doPreInitializationWork): Deleted.
(WebKit::PluginProcessMainDelegate::getExtraInitializationData): Deleted.
(WebKit::PluginProcessMainDelegate::doPostRunWork): Deleted.
* PluginProcess/WebProcessConnection.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/WebPageProxy.h:
* UIProcess/mac/PageClientImpl.h:
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(PageOverlayClientImpl::actionContextForResultAtPoint): Deleted.
(PageOverlayClientImpl::dataDetectorsDidPresentUI): Deleted.
(PageOverlayClientImpl::dataDetectorsDidChangeUI): Deleted.
(PageOverlayClientImpl::dataDetectorsDidHideUI): Deleted.
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
(WebKit::NetscapePlugin::isBeingAsynchronouslyInitialized): Deleted.
* WebProcess/Plugins/PDF/PDFPlugin.h:
* WebProcess/Plugins/PluginProcessConnection.h:
* WebProcess/Plugins/PluginProxy.h:
(WebKit::PluginProxy::isBeingAsynchronouslyInitialized): Deleted.
* WebProcess/WebCoreSupport/WebContextMenuClient.h:
2015-01-27 Beth Dakin <bdakin@apple.com>
Immediate action gesture recognizer still doesn't work well with IB
https://bugs.webkit.org/show_bug.cgi?id=140967
-and corresponding-
rdar://problem/19621509
Reviewed by Tim Horton.
We should add (or remove) the gesture recognizer in viewDidMoveToWindow because
initWithFrame it too early and IB might mess with it.
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
2015-01-27 Beth Dakin <bdakin@apple.com>
Invoking an immediate action on link often dismisses selection
https://bugs.webkit.org/show_bug.cgi?id=140911
-and corresponding-
rdar://problem/19572685
Reviewed by Tim Horton.
Calling _page->setMaintainsInactiveSelection(false) in complete is often
too soon. Instead, call it in dismissContentRelativeChildWindows. This is more
similar to the timing for the TextIndicator.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController dismissContentRelativeChildWindows]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):
2015-01-27 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r166975): [GTK] Page overlays are not drawn anymore after r166975
https://bugs.webkit.org/show_bug.cgi?id=131433
Reviewed by Žan Doberšek.
Implement page overlays for the GTK+ port.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
Override pure virtual setViewOverlayRootLayer().
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::display): Remove FIXME and use modern
for loop.
(WebKit::DrawingAreaImpl::attachViewOverlayGraphicsLayer): Remove
ifdefs and use LayerTreeHost::setViewOverlayRootLayer().
* WebProcess/WebPage/LayerTreeHost.h: Add pure virtual setViewOverlayRootLayer().
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk): Initialize m_viewOverlayRootLayer.
(WebKit::LayerTreeHostGtk::initialize): Remove FIXME.
(WebKit::LayerTreeHostGtk::setNonCompositedContentsNeedDisplay):
Remove unused old page overlays code.
(WebKit::LayerTreeHostGtk::setNonCompositedContentsNeedDisplayInRect): Ditto.
(WebKit::LayerTreeHostGtk::sizeDidChange): Ditto.
(WebKit::LayerTreeHostGtk::paintContents): Remove FIXME.
(WebKit::LayerTreeHostGtk::flushPendingLayerChanges): Flush
compositing state on m_pageOverlayLayers if present.
(WebKit::LayerTreeHostGtk::setViewOverlayRootLayer): Set m_pageOverlayLayers.
(WebKit::LayerTreeHostGtk::createPageOverlayLayer): Deleted.
(WebKit::LayerTreeHostGtk::destroyPageOverlayLayer): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h: Remove unused old
page overlays code.
2015-01-27 Sungmann Cho <sungmann.cho@navercorp.com>
Remove remaining PLUGIN_ARCHITECTURE(WIN) code blocks from WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=140912
Reviewed by Anders Carlsson.
* Shared/Plugins/Netscape/NetscapePluginModule.cpp:
(WebKit::NetscapePluginModule::tryLoad):
* Shared/Plugins/PluginQuirks.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::userAgent):
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
2015-01-26 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Fix possible crash when -[WKWebView evaluateJavaScript:completionHandler:] was called then the WKWebView is destroyed
https://bugs.webkit.org/show_bug.cgi?id=140203
rdar://problem/19198492
Reviewed by Sam Weinig.
When handling the OwnerWasInvalidated case in -[WKWebView evaluateJavaScript:completionHandler:],
the block passed to dispatch_async() needs to be retained. Fix by passing the RefPtr
to the lambda.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView evaluateJavaScript:completionHandler:]):
2015-01-26 Chris Dumez <cdumez@apple.com>
Rename Document::body() to Document::bodyOrFrameset() for clarity
https://bugs.webkit.org/show_bug.cgi?id=140902
Reviewed by Andreas Kling.
Rename Document::body() to Document::bodyOrFrameset() for clarity. This
method does not necessarily return an HTMLBodyElement, it can also
return a frameset as per the specification:
http://www.w3.org/TR/html5/dom.html#dom-tree-accessors
This method is often misused internally (the caller is only interested
in the <body> element). I will fix these instances in a follow-up patch,
this patch is only renaming mechanically.
2015-01-26 Antti Koivisto <antti@apple.com>
Add a user default for disabling network cache
https://bugs.webkit.org/show_bug.cgi?id=140904
Reviewed by Andreas Kling
defaults write com.apple.Safari WebKitNetworkCacheEnabled -bool YES/NO
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* Shared/Network/NetworkProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
2015-01-26 Chris Dumez <cdumez@apple.com>
First argument to DOM traversal functions should be a reference
https://bugs.webkit.org/show_bug.cgi?id=140895
Reviewed by Antti Koivisto.
First argument to DOM traversal functions should be a reference instead
of a pointer as it is dereferenced without null-check.
2015-01-26 Beth Dakin <bdakin@apple.com>
Blacklist iBooks for WebKit's default immediate actions
https://bugs.webkit.org/show_bug.cgi?id=140854
-and corresponding-
rdar://problem/19489518
Reviewed by Tim Horton.
Blacklist iBooks.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _updateImmediateActionItem]):
2015-01-26 Myles C. Maxfield <mmaxfield@apple.com>
[iOS] [SVG -> OTF Converter] Flip the switch off on iOS
https://bugs.webkit.org/show_bug.cgi?id=140860
Reviewed by Darin Adler.
The fonts it makes are grotesque. (See what I did there? Typographic
humor is the best humor.)
* Configurations/FeatureDefines.xcconfig:
2015-01-26 Fabien Vallée <fvallee@connected-labs.com>
AX: crash in accessibilityRootObjectWrapper method (WebPageAccessibilityObjectAtk.cpp)
<https://bugs.webkit.org/show_bug.cgi?id=140618>
Reviewed by Chris Fleizach.
Check if document()->axObjectCache() is nullptr to fix the crash.
Similar patch has been applied on mac port:
<http://trac.webkit.org/changeset/167136>
Crash occured on <http://itv.mit-xperts.com/hbbtvtest/appmanager/>
(this page needs CEHTML / HbbTV extensions, conditions cannot
be reproduced using regression tests)
* WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:
(accessibilityRootObjectWrapper):
2015-01-26 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] gtkdoc does not appear in DevHelp
https://bugs.webkit.org/show_bug.cgi?id=139369
Reviewed by Philippe Normand.
* PlatformGTK.cmake: Include the API version in the gtkdoc filenames.
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Renamed from Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt.
* UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Renamed from Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk.types.
2015-01-25 Timothy Horton <timothy_horton@apple.com>
Unresponsive Web processes sometimes throw ObjC exceptions under didPerformActionMenuHitTest:
https://bugs.webkit.org/show_bug.cgi?id=140859
<rdar://problem/19571057>
Reviewed by Darin Adler.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController didPerformActionMenuHitTest:userData:]):
If we've already given up on this gesture (either because it was canceled or the
willBeginAnimation timeout expired), we shouldn't build a new animationController for it.
This is true both because it wouldn't look good to swap animationControllers out
from under the gesture, but also because AppKit throws an exception when you do this
and that breaks a lot of things.
2015-01-24 Chris Dumez <cdumez@apple.com>
[WK2][Cocoa] Drop WKDiagnosticLoggingResultType defines
https://bugs.webkit.org/show_bug.cgi?id=140838
Reviewed by Sam Weinig.
Drop WKDiagnosticLoggingResultType defines in _WKDiagnosticLoggingDelegate.h
header now that the client-side is correctly using
_WKDiagnosticLoggingResultType instead.
* UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
2015-01-23 Antti Koivisto <antti@apple.com>
Implement cache size limit
https://bugs.webkit.org/show_bug.cgi?id=140844
Reviewed by Andreas Kling.
Prevent the cache from growing without bounds. The simple scheme implemented here
estimates the cache size from number of entries. When the estimated size exceeds
the maximum size we randomly clear 1/4 of the entries.
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::NetworkCacheStorage):
(WebKit::NetworkCacheStorage::initialize):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::setMaximumSize):
(WebKit::NetworkCacheStorage::clear):
(WebKit::NetworkCacheStorage::shrinkIfNeeded):
(WebKit::NetworkCacheStorage::initializeKeyFilter): Deleted.
2015-01-23 Timothy Horton <timothy_horton@apple.com>
Fix the pre-Yosemite build.
* UIProcess/API/mac/WKView.mm:
(-[WKView _dismissContentRelativeChildWindows]):
2015-01-23 Timothy Horton <timothy_horton@apple.com>
QLPreviewMenuItem popovers don't close when the page scrolls
https://bugs.webkit.org/show_bug.cgi?id=140806
<rdar://problem/19555618>
Reviewed by Beth Dakin.
Now that QLPreviewMenuItem's popover doesn't eat scrolls, we need to dismiss it if the page scrolls.
* UIProcess/API/mac/WKView.mm:
(-[WKView _dismissContentRelativeChildWindows]):
Send _dismissContentRelativeChildWindows on to WKImmediateActionController.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController dismissContentRelativeChildWindows]):
(-[WKImmediateActionController _defaultAnimationController]):
Keep track of the active QLPreviewMenuItem, and close it upon scroll.
2015-01-23 Timothy Horton <timothy_horton@apple.com>
Infinite recursion in _clearImmediateActionState
https://bugs.webkit.org/show_bug.cgi?id=140807
<rdar://problem/19571601>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
Clear _hasActivatedActionContext before calling didUseActions, because
didUseActions can call _clearImmediateActionState.
2015-01-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add initial database process support
https://bugs.webkit.org/show_bug.cgi?id=139491
Reviewed by Sergio Villar Senin.
Add initial support for DatabaseProcess, disabled by default for
now.
* CMakeLists.txt: Add required files to compilation.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::createDatabaseToWebProcessConnection):
Add the unix domain sockets implementation.
* DatabaseProcess/EntryPoint/unix/DatabaseProcessMain.cpp: Added.
(main):
* DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp: Added.
(WebKit::DatabaseProcessMainUnix):
* DatabaseProcess/unix/DatabaseProcessMainUnix.h: Added.
* PlatformGTK.cmake: Add required files to compilation.
* Shared/ProcessExecutablePath.h:
* Shared/gtk/KeyedDecoder.cpp: Added.
(WebKit::KeyedDecoder::KeyedDecoder):
(WebKit::KeyedDecoder::~KeyedDecoder):
(WebKit::KeyedDecoder::buildDictionaryFromGVariant):
(WebKit::KeyedDecoder::decodeBytes):
(WebKit::KeyedDecoder::decodeBool):
(WebKit::KeyedDecoder::decodeUInt32):
(WebKit::KeyedDecoder::decodeInt32):
(WebKit::KeyedDecoder::decodeInt64):
(WebKit::KeyedDecoder::decodeFloat):
(WebKit::KeyedDecoder::decodeDouble):
(WebKit::KeyedDecoder::decodeString):
(WebKit::KeyedDecoder::beginObject):
(WebKit::KeyedDecoder::endObject):
(WebKit::KeyedDecoder::beginArray):
(WebKit::KeyedDecoder::beginArrayElement):
(WebKit::KeyedDecoder::endArrayElement):
(WebKit::KeyedDecoder::endArray):
* Shared/gtk/KeyedDecoder.h: Added.
* Shared/gtk/KeyedEncoder.cpp: Added.
(WebKit::KeyedEncoder::KeyedEncoder):
(WebKit::KeyedEncoder::~KeyedEncoder):
(WebKit::KeyedEncoder::encodeBytes):
(WebKit::KeyedEncoder::encodeBool):
(WebKit::KeyedEncoder::encodeUInt32):
(WebKit::KeyedEncoder::encodeInt32):
(WebKit::KeyedEncoder::encodeInt64):
(WebKit::KeyedEncoder::encodeFloat):
(WebKit::KeyedEncoder::encodeDouble):
(WebKit::KeyedEncoder::encodeString):
(WebKit::KeyedEncoder::beginObject):
(WebKit::KeyedEncoder::endObject):
(WebKit::KeyedEncoder::beginArray):
(WebKit::KeyedEncoder::beginArrayElement):
(WebKit::KeyedEncoder::endArrayElement):
(WebKit::KeyedEncoder::endArray):
(WebKit::KeyedEncoder::finishEncoding):
* Shared/gtk/KeyedEncoder.h: Added.
* Shared/gtk/ProcessExecutablePathGtk.cpp:
(WebKit::executablePathOfDatabaseProcess):
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::didCreateDatabaseToWebProcessConnection):
Add the unix domain sockets implementation.
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess): Handle the
DatabaseProcess too.
* UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureWebToDatabaseProcessConnection): Add
the unix domain sockets implementation.
2015-01-22 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Ignore synthetic click initiated on a previous page
https://bugs.webkit.org/show_bug.cgi?id=139556
rdar://problem/18586008
Reviewed by David Kilzer.
Under the right accumulation of bad luck, a synthetic click could be generated
on a page that never asked for it.
What happened was:
1) Page Foo listen to touch event.
2) In response to touch events, Foo decides to navigate to page Bar
*but* it does not cancel the native gesture recognizers with preventDefault().
3) Page Bar loads.
4) The native gesture recognizer ask us to click, we forward that to the WebProcess
and generate a synthetic mouse event.
-> Bar receives a click.
If you are unlucky enough, it looks like a single tap does a double click.
There are two ways this patch avoids the problem:
First, in the UIProcess, we just cancel the HighlightLongPressGestureRecognizer
on didCommitLoadForMainFrame. This prevents "fast clicks" from accidentally going through.
This is not bullet proof because we get didCommitLoadForMainFrame asynchronously but
killing the timer and gesture seems like a good idea.
Second, we skip any tap command at the WebProcess level when it was issued for
the previous page. This is using the same principle we used for VisibleContentRect:
any input generated before the current layer tree commit is useless for the current page.
We track the commit ID in the UIProcess when we decide to do the tracking or not.
Note that we keep the ID regardless of the tracking state, it does not matter if we have sent
touch events, what matters is what content was on screen when the touch events were handled.
If the user interaction result in a tap, we send the commit ID along the tap commands.
In the WebProcess, we know the actual layer tree commit associated with the current page.
If the tap was generated with a layer ID preceding the current page, we fail the command.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::resetState):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _didCommitLoadForMainFrame]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _attemptClickAtLocation:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::commitPotentialTap):
(WebKit::WebPageProxy::handleTap):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleTap):
(WebKit::WebPage::commitPotentialTap):
2015-01-22 Chris Dumez <cdumez@apple.com>
[WK2][Cocoa] Drop WKWebViewConfiguration._featureCounterEnabled SPI.
https://bugs.webkit.org/show_bug.cgi?id=140799
Reviewed by Dan Bernstein.
Drop WKWebViewConfiguration._featureCounterEnabled SPI now that the
client-side has been updated.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _setAllowsAlternateFullscreen:]):
(-[WKWebViewConfiguration _featureCounterEnabled]): Deleted.
(-[WKWebViewConfiguration _setFeatureCounterEnabled:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
2015-01-22 Antti Koivisto <antti@apple.com>
Fix ENABLE(NETWORK_CACHE) build
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):
2015-01-22 Timothy Horton <timothy_horton@apple.com>
UserData decoding of WKTypeRefWrapper always fails
https://bugs.webkit.org/show_bug.cgi?id=140791
<rdar://problem/19438402>
Reviewed by Anders Carlsson.
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::ObjCObjectGraph::decode):
Add a missing break.
2015-01-22 Ryosuke Niwa <rniwa@webkit.org>
Add a build flag for ES6 class syntax
https://bugs.webkit.org/show_bug.cgi?id=140760
Reviewed by Michael Saboff.
* Configurations/FeatureDefines.xcconfig:
2015-01-22 Chris Dumez <cdumez@apple.com>
Drop the legacy FeatureCounter class
https://bugs.webkit.org/show_bug.cgi?id=140749
Reviewed by Andreas Kling.
Drop the legacy FeatureCounter class and use DiagnosticLoggingClient
instead.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _featureCounterEnabled]):
(-[WKWebViewConfiguration _setFeatureCounterEnabled:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::willStartUserTriggeredZooming):
2015-01-22 Beth Dakin <bdakin@apple.com>
ibtoold crash below -[WebView close]
https://bugs.webkit.org/show_bug.cgi?id=140782
-and corresponding-
rdar://problem/19558472
Reviewed by Tim Horton.
Retain the NSImmediateActionGestureRecognizer. This should not be necessary, but
it is because interface builder can mess with our views.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _cancelImmediateAction]):
(-[WKImmediateActionController _cancelImmediateActionIfNeeded]):
(-[WKImmediateActionController _updateImmediateActionItem]):
2015-01-22 David Kilzer <ddkilzer@apple.com>
[iOS] Fix iphoneos SDK builds for ios-ews queue
<http://webkit.org/b/140748>
Reviewed by Daniel Bates.
* Platform/spi/ios/BKSProcessAssertionSPI.h: Add -invalidate
definition. Sort @property to the top of BKSProcessAssertion.
2015-01-22 Shivakumar JM <shiva.jm@samsung.com>
Fix build warning in WebKit2/UIProcess module
https://bugs.webkit.org/show_bug.cgi?id=140758
Reviewed by Csaba Osztrogonác.
Fix build warnings by using UNUSED_PARAM macro
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupAddUserContentFilter):
(WKPageGroupRemoveAllUserContentFilters):
2014-11-06 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use API::ContextMenuClient and API::InjectedBundle::PageContextMenuClient classes
https://bugs.webkit.org/show_bug.cgi?id=138467
Reviewed by Gustavo Noronha Silva.
* UIProcess/API/gtk/WebKitContextMenu.cpp:
(webkitContextMenuPopulate): Add a version that receives a Vector<WebContextMenuItemData>&.
(webkitContextMenuCreate): Change it to receive a const
Vector<WebContextMenuItemData>& instead of a API::Array* and also
add a another version that receives const Vector<ContextMenuItem>&.
* UIProcess/API/gtk/WebKitContextMenuClient.cpp:
(attachContextMenuClientToView): Use a class derived from
API::ContextMenuClient to implement the context menu client.
(getContextMenuFromProposedMenu): Deleted.
* UIProcess/API/gtk/WebKitContextMenuItem.cpp:
(webkitContextMenuItemCreate): Change it to receive a const
WebContextMenuItemData& and added another version that receives a
const ContextMenuItem&.
* UIProcess/API/gtk/WebKitContextMenuItemPrivate.h:
* UIProcess/API/gtk/WebKitContextMenuPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewPopulateContextMenu): Remove the creation of a
WebHitTestResult::Data, since it receives it now as parameter.
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp:
(webkitWebHitTestResultCreate): Change it to receive a const
HitTestResult& instead of const InjectedBundleHitTestResult&.
* WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResultPrivate.h:
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkitWebPageCreate): Use a class derived from
API::InjectedBundle::PageContextMenuClient to implement the
context menu client.
(getContextMenuFromDefaultMenu): Deleted.
2015-01-22 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Try to fix Debug build after r178889.
* UIProcess/API/C/WKPage.cpp: Include Logging.h.
2015-01-21 Carlos Garcia Campos <cgarcia@igalia.com>
Add API::ContextMenuClient and API::InjectedBundle::PageContextMenuClient classes
https://bugs.webkit.org/show_bug.cgi?id=138466
Reviewed by Anders Carlsson.
Move ContextMenuClient to use API classes in both UI and Injected
Bundle APIs.
* CMakeLists.txt: Remove WebPageContextMenuClient.cpp.
* UIProcess/API/APIContextMenuClient.h: Renamed from Source/WebKit2/UIProcess/WebPageContextMenuClient.h.
(API::ContextMenuClient::~ContextMenuClient):
(API::ContextMenuClient::getContextMenuFromProposedMenu):
(API::ContextMenuClient::customContextMenuItemSelected):
(API::ContextMenuClient::contextMenuDismissed):
(API::ContextMenuClient::showContextMenu):
(API::ContextMenuClient::hideContextMenu):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageContextMenuClient):
* UIProcess/WebPageContextMenuClient.cpp: Removed.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setContextMenuClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::internalShowContextMenu):
(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::initializeContextMenuClient): Deleted.
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj: Remove deleted files and add
new files to compilation.
* WebProcess/InjectedBundle/API/APIInjectedBundlePageContextMenuClient.h: Copied from Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h.
(API::InjectedBundle::PageContextMenuClient::~PageContextMenuClient):
(API::InjectedBundle::PageContextMenuClient::getCustomMenuFromDefaultItems):
(API::InjectedBundle::PageContextMenuClient::prepareForActionMenu):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetContextMenuClient):
* WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
(WebKit::InjectedBundlePageContextMenuClient::InjectedBundlePageContextMenuClient):
(WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems):
(WebKit::InjectedBundlePageContextMenuClient::prepareForActionMenu):
* WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h:
* WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::menuItemsWithUserData):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setInjectedBundleContextMenuClient):
(WebKit::WebPage::close):
(WebKit::WebPage::initializeInjectedBundleContextMenuClient): Deleted.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::injectedBundleContextMenuClient):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
2015-01-20 Jon Honeycutt <jhoneycutt@apple.com>
[iOS] WebKitTestRunner: Tests fail due to incorrect web view size
<https://bugs.webkit.org/show_bug.cgi?id=139736>
<rdar://problem/19282196>
This starts happening after we fail to reset the test controller to
consistent values in TestInvocation::invoke(). When we terminate the
web process and relaunch it, the new WebPage object created in the web
process is using the default ViewportConfiguration with dimensions of
1024x768.
The PageClient on iOS currently notifies the WKWebView and the
WKContentView when the web process is relaunched. This patch extends
that to also notify the WKView.
Reviewed by Benjamin Poulain.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare -_didRelaunchProcess.
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
Call the new method that accepts a WKView.
(-[WKView _didRelaunchProcess]):
Call -_frameOrBoundsChanged to update the web process's size to the
size of the WKView.
* UIProcess/ios/PageClientImplIOS.h:
Add a constructor that takes a WKView, and add a member var to hold it.
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::PageClientImpl):
Implement the constructor that takes a WKView.
(WebKit::PageClientImpl::didRelaunchProcess):
Tell the WKView that the web process relaunched.
* UIProcess/ios/WKContentView.h:
Declare an initializer that takes a WKView.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
Split out from -[WKContentView initWithFrame:processPool:configuration:webView:].
(-[WKContentView initWithFrame:processPool:configuration:webView:]):
Perform some initialization, including creating the PageClient, and
call the common initializer.
(-[WKContentView initWithFrame:processPool:configuration:wkView:]):
Ditto.
2015-01-21 Sam Weinig <sam@webkit.org>
Add WKPageGroupRef SPI for user content filters
https://bugs.webkit.org/show_bug.cgi?id=140728
Reviewed by Anders Carlsson.
While Safari is transitioning to WKUserContentController, it is useful
for them to have access to have access to content filters on the page group
where they currently have user content related functionality.
* Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::encode):
(WebKit::WebPageGroupData::decode):
* Shared/WebPageGroupData.h:
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupAddUserContentFilter):
(WKPageGroupRemoveAllUserContentFilters):
* UIProcess/API/C/WKPageGroup.h:
* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::addUserContentFilter):
(WebKit::WebPageGroup::removeAllUserContentFilters):
* UIProcess/WebPageGroup.h:
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
(WebKit::WebPageGroupProxy::addUserContentFilter):
(WebKit::WebPageGroupProxy::removeAllUserContentFilters):
* WebProcess/WebPage/WebPageGroupProxy.h:
* WebProcess/WebPage/WebPageGroupProxy.messages.in:
2015-01-21 Beth Dakin <bdakin@apple.com>
Crash in QuickLook preview delegate method
https://bugs.webkit.org/show_bug.cgi?id=140740
-and corresponding-
rdar://problem/19540806
Reviewed by Tim Horton.
Clear out the delegate.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController willDestroyView:]):
2015-01-21 Zan Dobersek <zdobersek@igalia.com>
AsyncRequestImpl casting in AsyncRequest::completeRequest() is incorrect
https://bugs.webkit.org/show_bug.cgi?id=139724
Reviewed by Darin Adler.
AsyncRequestImpl casting in AsyncRequest::completeRequest() relies on
the parameter pack to properly determine the type of the AsyncRequestImpl
object. The casting result can be incorrect when an argument is passed
by reference while the original object was constructed with a callback
that expects an argument that's passed by value.
To avoid this the AsyncRequestImpl template is now instantiated with
raw types, with callback parameters remaining raw types in case
of being integral (enforcing passing-by-value these arguments when
dispatching), and const references being used otherwise (enforcing
passing-by-reference).
This enables casting AsyncRequest objects to the correct AsyncRequestImpl<>
by running the parameter pack through std::decay.
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::putRecord):
(WebKit::UniqueIDBDatabase::getRecord):
(WebKit::UniqueIDBDatabase::openCursor):
(WebKit::UniqueIDBDatabase::cursorAdvance):
(WebKit::UniqueIDBDatabase::cursorIterate):
(WebKit::UniqueIDBDatabase::count):
(WebKit::UniqueIDBDatabase::deleteRange):
* Shared/AsyncRequest.h:
(WebKit::AsyncRequest::completeRequest):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata):
(WebKit::WebIDBServerConnection::get):
2015-01-21 Chris Dumez <cdumez@apple.com>
[WK2] Stop using WKDiagnosticLoggingResultType.h C API header in Cocoa API
https://bugs.webkit.org/show_bug.cgi?id=140655
Reviewed by Anders Carlsson.
Stop using WKDiagnosticLoggingResultType.h C API header in Cocoa API.
Instead, introduce a new _WKDiagnosticLoggingResultType enum in
_WKDiagnosticLoggingDelegate.h.
A few defines mapping WKDiagnosticLoggingResultType enum and its values
to the new _WKDiagnosticLoggingResultType are temporarily added until
the client-side is transitioned.
* UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
* UIProcess/Cocoa/DiagnosticLoggingClient.mm:
(WebKit::toWKDiagnosticLoggingResultType):
(WebKit::DiagnosticLoggingClient::logDiagnosticMessageWithResult):
2015-01-21 Zan Dobersek <zdobersek@igalia.com>
[WK2] Use C++ lambdas in ProcessLauncher class
https://bugs.webkit.org/show_bug.cgi?id=138186
Reviewed by Darin Adler.
Replace uses of WTF::bind() in the ProcessLauncher class with C++ lambdas.
* UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
(WebKit::tryPreexistingProcess):
(WebKit::createProcess):
2015-01-21 Zan Dobersek <zdobersek@igalia.com>
Clean up ViewUpdateDispatcher
https://bugs.webkit.org/show_bug.cgi?id=140619
Reviewed by Darin Adler.
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
Replace WTF::bind() with a C++ lambda.
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
Use WTF::move() to move the HashMap member into the local variable.
2015-01-21 Csaba Osztrogonác <ossy@webkit.org>
Remove ENABLE(INSPECTOR) ifdef guards
https://bugs.webkit.org/show_bug.cgi?id=140668
Reviewed by Darin Adler.
* Configurations/FeatureDefines.xcconfig:
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toImpl):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encode):
(IPC::ArgumentCoder<ResourceRequest>::decode):
* UIProcess/API/C/WKInspector.cpp:
(WKInspectorGetTypeID):
(WKInspectorGetPage):
(WKInspectorIsConnected):
(WKInspectorIsVisible):
(WKInspectorIsFront):
(WKInspectorConnect):
(WKInspectorShow):
(WKInspectorHide):
(WKInspectorClose):
(WKInspectorShowConsole):
(WKInspectorShowResources):
(WKInspectorShowMainResourceForFrame):
(WKInspectorIsAttached):
(WKInspectorAttach):
(WKInspectorDetach):
(WKInspectorIsProfilingPage):
(WKInspectorTogglePageProfiling):
* UIProcess/API/C/WKPage.cpp:
(WKPageGetInspector):
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_inspector_show):
(ewk_view_inspector_close):
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
* UIProcess/PageClient.h:
* UIProcess/WebInspectorProxy.cpp:
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.messages.in:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::resetState):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):
* UIProcess/efl/WebInspectorProxyEfl.cpp:
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::disableInspectorNodeSearch):
* UIProcess/ios/WebInspectorProxyIOS.mm:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::disableInspectorNodeSearch):
* UIProcess/mac/WebInspectorProxyMac.mm:
* WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
(WKBundleInspectorGetTypeID):
(WKBundleInspectorShow):
(WKBundleInspectorClose):
(WKBundleInspectorEvaluateScriptForTest):
(WKBundleInspectorSetPageProfilingEnabled):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageGetInspector):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
* WebProcess/WebCoreSupport/WebInspectorClient.h:
* WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
* WebProcess/WebPage/WebInspector.cpp:
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebInspector.messages.in:
* WebProcess/WebPage/WebInspectorUI.cpp:
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/WebInspectorUI.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::close):
(WebKit::WebPage::inspectorUI):
(WebKit::WebPage::didReceiveMessage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/efl/WebInspectorEfl.cpp:
* WebProcess/WebPage/efl/WebInspectorUIEfl.cpp:
* WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
* WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::disableInspectorNodeSearch):
* WebProcess/WebPage/mac/WebInspectorMac.mm:
* WebProcess/WebPage/mac/WebInspectorUIMac.mm:
* config.h:
2015-01-20 Martin Hock <mhock@apple.com>
[iOS][WK2] Redraw find-in-page indicator on rotation
https://bugs.webkit.org/show_bug.cgi?id=140632
<rdar://problem/18858394>
Reviewed by Tim Horton.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::redraw): Add method to redraw find indicator (only used by iOS).
* WebProcess/WebPage/FindController.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mainFrameDidLayout):
* WebProcess/WebPage/ios/FindControllerIOS.mm:
(WebKit::FindController::updateFindIndicator): Redraw should not trigger zoom.
2015-01-20 David Kilzer <ddkilzer@apple.com>
Switch to comparing PLATFORM_NAME in terms of macosx
<http://webkit.org/b/139516>
Reviewed by Timothy Hatcher.
* WebKit2.xcodeproj/project.pbxproj:
* mac/rewrite-availability-macros.sh: Remove the else block that
checked for an unknown PLATFORM_NAME.
2015-01-19 Simon Fraser <simon.fraser@apple.com>
Add a way to collect scrolling performance data (viewport tile coverage) with UI-side compositing
https://bugs.webkit.org/show_bug.cgi?id=140474
Reviewed by Tim Horton.
Add a private method to enable scrolling data collection to WKWebView. When enabled, create
a RemoteLayerTreeScrollingPerformanceData object that collects "blank pixel" data on
every layer tree commit and scroll, and stores them in a vector. A second SPI call
allows retrieval of an NSArray of this data.
To allow RemoteLayerTreeScrollingPerformanceData to find the correct layer which
contains the main tile grid, we set a layer name on the appropriate layer (even
in release builds).
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView visibleRectInScreenCoordinates]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView _setScrollPerformanceDataCollectionEnabled:]):
(-[WKWebView _scrollPerformanceDataCollectionEnabled]):
(-[WKWebView _scrollPerformanceData]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/RemoteLayerTreeScrollingPerformanceData.h: Added.
(WebKit::RemoteLayerTreeScrollingPerformanceData::BlankPixelCount::BlankPixelCount):
* UIProcess/Cocoa/RemoteLayerTreeScrollingPerformanceData.mm: Added.
(WebKit::RemoteLayerTreeScrollingPerformanceData::RemoteLayerTreeScrollingPerformanceData):
(WebKit::RemoteLayerTreeScrollingPerformanceData::~RemoteLayerTreeScrollingPerformanceData):
(WebKit::RemoteLayerTreeScrollingPerformanceData::didCommitLayerTree):
(WebKit::RemoteLayerTreeScrollingPerformanceData::didScroll):
(WebKit::RemoteLayerTreeScrollingPerformanceData::BlankPixelCount::canCoalesce):
(WebKit::RemoteLayerTreeScrollingPerformanceData::appendBlankPixelCount):
(WebKit::RemoteLayerTreeScrollingPerformanceData::data):
(WebKit::findTileGridContainerLayer):
(WebKit::RemoteLayerTreeScrollingPerformanceData::blankPixelCount):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setScrollPerformanceDataCollectionEnabled):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::scrollPerformanceDataCollectionEnabled):
(WebKit::WebPageProxy::scrollingPerformanceData):
* WebKit2.xcodeproj/project.pbxproj:
2015-01-19 Dean Jackson <dino@apple.com>
Support "plus-darker" in mix-blend mode
https://bugs.webkit.org/show_bug.cgi?id=140646
<rdar://problem/19523370>
Reviewed by Simon Fraser.
Output the appropriate blending type when logging.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
2015-01-20 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.7.4 release.
* gtk/NEWS: Add release notes for 2.7.4.
2015-01-20 Tomas Popela <tpopela@redhat.com>
[GTK] Add API to set the web view editable into WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=139443
Reviewed by Carlos Garcia Campos.
Provide a way to set the web view editable, without accessing the DOM
and setting the contenteditable attribute to elements.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init):
(webkit_web_view_is_editable):
(webkit_web_view_set_editable):
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
2015-01-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add an option to create WebKitWebView snapshots with transparent background
https://bugs.webkit.org/show_bug.cgi?id=140617
Reviewed by Gustavo Noronha Silva.
Add WEBKIT_SNAPSHOT_OPTIONS_TRANSPARENT_BACKGROUND flag to not
fill with white the background before rendering the snapshot.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_snapshot): Pass a TransparentBackground
boolean argument to the WEbProcess.
* UIProcess/API/gtk/WebKitWebView.h:
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkitWebPageDidReceiveMessage): Set the FrameView background as
transparent when TransparentBackground option is True before
rendering the snapshot.
2015-01-19 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add API to change the WebKitWebView background color
https://bugs.webkit.org/show_bug.cgi?id=140610
Reviewed by Gustavo Noronha Silva.
When a color different than the default one (opaque white) is
used, the SetDrawsBackground message is sent to the WebProcess with
a False value to indicate WebCore to not render backgrounds. The
background color passed is saved in the WebPageProxy and used by
the backing store to fill the background before the actual
contents are rendered in the WebView.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_set_background_color):
(webkit_web_view_get_background_color):
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Initialize m_backgroundColor member.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::backgroundColor): Return m_backgroundColor.
(WebKit::WebPageProxy::setBackgroundColor): Set m_backgroundColor.
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate): Fill the damage region
with the WebPageProxy background color when the WebProcess is not
rendering backgrounds. If the background color is not fully opaque
we need to clear the region before filling it with the color.
2015-01-19 Myles C. Maxfield <mmaxfield@apple.com>
[SVG -> OTF Converter] Flip the switch on
https://bugs.webkit.org/show_bug.cgi?id=140592
Reviewed by Antti Koivisto.
* Configurations/FeatureDefines.xcconfig:
2015-01-19 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/140504> REGRESSION (r178452): Visited link coloring only appears to work in the first web process
Roll out r178452 since it broke visited link coloring.
Reviewed by Anders Carlsson.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
(WebKit::VisitedLinkProvider::addProcess):
(WebKit::VisitedLinkProvider::removeProcess):
(WebKit::VisitedLinkProvider::removeAll):
(WebKit::VisitedLinkProvider::webProcessWillOpenConnection):
(WebKit::VisitedLinkProvider::webProcessDidCloseConnection):
(WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
(WebKit::VisitedLinkProvider::resizeTable):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::processDidFinishLaunching):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::disconnect):
(WebKit::WebProcessProxy::addVisitedLinkProvider):
(WebKit::WebProcessProxy::didDestroyVisitedLinkProvider):
* UIProcess/WebProcessProxy.h:
2015-01-19 Sam Weinig <sam@webkit.org>
Sprinkle some CTTE on API::PolicyClient and API::FormClient
https://bugs.webkit.org/show_bug.cgi?id=140656
Reviewed by Tim Horton.
- Use references rather than pointers where possible.
- Store and pass the listeners as Refs.
- Make API::FormClient more like API::PolicyClient by making it the
responsibility of the client implementation to call the default policy.
* UIProcess/API/APIFormClient.h:
(API::FormClient::willSubmitForm):
* UIProcess/API/APIPolicyClient.h:
(API::PolicyClient::decidePolicyForNavigationAction):
(API::PolicyClient::decidePolicyForNewWindowAction):
(API::PolicyClient::decidePolicyForResponse):
(API::PolicyClient::unableToImplementPolicy):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPagePolicyClient):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setFormDelegate:]):
* UIProcess/API/gtk/WebKitPolicyClient.cpp:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForNewWindowAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):
* UIProcess/WebFormClient.cpp:
(WebKit::WebFormClient::willSubmitForm):
* UIProcess/WebFormClient.h:
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::setUpPolicyListenerProxy):
(WebKit::WebFrameProxy::setUpFormSubmissionListenerProxy):
* UIProcess/WebFrameProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::unableToImplementPolicy):
(WebKit::WebPageProxy::willSubmitForm):
2015-01-18 Sam Weinig <sam@webkit.org>
Merge API::ProcessPoolConfiguration and _WKProcessPoolConfiguration
https://bugs.webkit.org/show_bug.cgi?id=140601
Reviewed by Anders Carlsson.
- Converts _WKProcessPoolConfiguration to be backed via API::ProcessPoolConfiguration.
- Expands API::ProcessPoolConfiguration to add all the parameters necessary to fully
initialize a WebProcessPool. This allows -[WKProcessPool _initWithConfiguration:] to
be a simple pass through initializer, which in turn allows us to consider WebProcessPools
created on the C++ and Objective-C sides as equivalent.
- Makes WebProcessPool own the reference to the API::ProcessPoolConfiguration (rather than
the WKProcessPool wrapper).
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Create the API::ProcessPoolConfigurations using [_WKProcessPoolConfiguration alloc] as its
storage..
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::create):
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::~ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):
(API::ProcessPoolConfiguration::webProcessPoolConfiguration): Deleted.
* UIProcess/API/APIProcessPoolConfiguration.h:
Add the remaining initialization parameters and add a convenience create function
for configuring legacy WebProcessPools (for use by the C-SPI).
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Expose helper for getting the website data directories for use in the ProcessPoolConfiguration.
* UIProcess/API/C/WKContext.cpp:
(WKContextCreate):
(WKContextCreateWithInjectedBundlePath):
(WKContextCreateWithConfiguration):
Use ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCreate):
Update for ProcessPoolConfiguration::create() returning a Ref. Note, this function
was not changed to call ProcessPoolConfiguration::createWithLegacyOptions() since
it has not been around long enough to warrant it.
* UIProcess/API/Cocoa/WKProcessGroup.mm:
(-[WKProcessGroup initWithInjectedBundleURL:]):
Use ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool description]):
Change to pull the configuration from the underlying API::Object.
(-[WKProcessPool _configuration]):
Change to pull the configuration from the underlying API::Object and call the new
copy() helper on it.
(-[WKProcessPool _initWithConfiguration:]):
Convert to be a simple pass through to API::Object::constructInWrapper.
(websiteDataDirectoryURL): Deleted.
Moved to APIWebsiteDataStore.h
* UIProcess/API/Cocoa/WKProcessPoolInternal.h:
Removes the _WKProcessPoolConfiguration member, now that it is stored on the WebProcessPool.
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration init]):
(-[_WKProcessPoolConfiguration dealloc]):
Added to support API::Object bridging.
(-[_WKProcessPoolConfiguration injectedBundleURL]):
(-[_WKProcessPoolConfiguration setInjectedBundleURL:]):
Convert to getting the URL from the underlying object. Moved the exception
that used to be on creation of the WKProcessPool.
(-[_WKProcessPoolConfiguration maximumProcessCount]):
(-[_WKProcessPoolConfiguration setMaximumProcessCount:]):
Convert to getting the count from the underlying object.
(-[_WKProcessPoolConfiguration cachePartitionedURLSchemes]):
Convert to constructing the NSArray on demand from the underlying Vector.
(-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]):
Converts the NSArray to a Vector rather than storing the array.
* UIProcess/API/Cocoa/_WKProcessPoolConfigurationInternal.h: Added.
(API::wrapper):
Add boilerplate for API::Object bridging.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
Update to use API::ProcessPoolConfiguration::createWithLegacyOptions() to keep backwards compatibility.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::inspectorProcessPool):
Update to call API::ProcessPoolConfiguration::createWithLegacyOptions().
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::create):
(WebKit::websiteDataStoreConfiguration):
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::applyPlatformSpecificConfigurationDefaults): Deleted.
This functionality was moved to the constructor of the API::ProcessPoolConfiguration.
* UIProcess/WebProcessPool.h:
Changed to take (and store) a API::ProcessPoolConfiguration rather than the WebProcessPoolConfiguration.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory): Deleted.
Renamed to make it clear these were the legacy locations for these directories.
* WebKit2.xcodeproj/project.pbxproj:
Added new files.
2015-01-19 Beth Dakin <bdakin@apple.com>
Speculative build fix.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:processPool:configuration:webView:]):
2015-01-19 Timothy Horton <timothy_horton@apple.com>
Adjust naming of action menu SPI
https://bugs.webkit.org/show_bug.cgi?id=140644
<rdar://problem/19448129>
Reviewed by Brian Weinstein.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:processPool:configuration:webView:]):
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController didCloseMenu:withEvent:]):
(-[WKActionMenuController menuNeedsUpdate:]):
(-[WKActionMenuController _updateActionMenuItems]):
2015-01-19 Zan Dobersek <zdobersek@igalia.com>
[CoordinatedGraphics] Use C++ lambda instead of WTF::bind() in ThreadedCompositor::updateSceneState()
https://bugs.webkit.org/show_bug.cgi?id=140613
Reviewed by Carlos Garcia Campos.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::updateSceneState): Replace the use of WTF::bind() with a C++ lambda.
2015-01-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r178653.
https://bugs.webkit.org/show_bug.cgi?id=140634
Broke multiple SVG tests on Mountain Lion (Requested by ap on
#webkit).
Reverted changeset:
"[SVG -> OTF Converter] Flip the switch on"
https://bugs.webkit.org/show_bug.cgi?id=140592
http://trac.webkit.org/changeset/178653
2015-01-19 Dean Jackson <dino@apple.com>
Add "override" to fix the build with newer clangs.
* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::transformObjectsToHandles):
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
2015-01-19 Myles C. Maxfield <mmaxfield@apple.com>
[SVG -> OTF Converter] Flip the switch on
https://bugs.webkit.org/show_bug.cgi?id=140592
Reviewed by Antti Koivisto.
* Configurations/FeatureDefines.xcconfig:
2015-01-18 Daniel Bates <dabates@apple.com>
Attempt to fix the iOS build after <http://trac.webkit.org/changeset/178631>
(https://bugs.webkit.org/show_bug.cgi?id=129441)
* UIProcess/WKInspectorHighlightView.mm:
(-[WKInspectorHighlightView update:]): Substitute HighlightType::Node and
HighlightType::Rects for HighlightTypeNode and HighlightTypeRects, respectively.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::highlight): Pass lvalue reference to WebCore::Highlight
instead of pointer in call to InspectorController::getHighlight().
2015-01-18 Sam Weinig <sam@webkit.org>
Fix style issues and add availability macros missed in r178634
https://bugs.webkit.org/show_bug.cgi?id=140597
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
Add missing availability macros.
* UIProcess/API/Cocoa/_WKUserContentFilter.h:
* UIProcess/API/Cocoa/_WKUserContentFilter.mm:
(-[_WKUserContentFilter initWithName:serializedRules:]):
(-[_WKUserContentFilter _initWithName:serializedRules:]): Deleted.
Removed unnecessary leading underscore from init method.
2015-01-17 Sam Weinig <sam@webkit.org>
Add initial experimental user content filtering API
https://bugs.webkit.org/show_bug.cgi?id=140584
Reviewed by Benjamin Poulain.
Moves content filtering from being per-ProcessPool to per-UserContentController.
* Shared/API/APIObject.h:
* Shared/API/c/WKBase.h:
* UIProcess/API/APIUserContentFilter.cpp: Added.
(API::UserContentFilter::UserContentFilter):
(API::UserContentFilter::~UserContentFilter):
* UIProcess/API/APIUserContentFilter.h: Added.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKUserContentFilterRef.cpp: Added.
(WKUserContentFilterGetTypeID):
(WKUserContentFilterCreate):
* UIProcess/API/C/WKUserContentFilterRef.h: Added.
* UIProcess/API/C/WebKit2_C.h:
* UIProcess/API/Cocoa/_WKUserContentFilter.h: Added.
* UIProcess/API/Cocoa/_WKUserContentFilter.mm: Added.
(WKUserContentControllerAddUserContentFilter):
(WKUserContentControllerRemoveAllUserContentFilters):
(-[_WKUserContentFilter _initWithName:ruleList:]):
* UIProcess/API/Cocoa/_WKUserContentFilterInternal.h: Added.
Add a basic UserContentFilter type and expose it via both the Objective-C API (as _WKUserContentFilter)
and via the C SPI (as WKUserContentFilterRef).
* UIProcess/API/C/WKUserContentControllerRef.h:
* UIProcess/API/C/WKUserContentControllerRef.cpp:
Add C-SPI to set and remove WKUserContentFilterRefs.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _loadContentExtensionWithIdentifier:serializedRules:successCompletionHandler:errorCompletionHandler:]): Deleted.
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::loadContentExtension): Deleted.
* UIProcess/WebProcessPool.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::loadContentExtension): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
Remove the old SPI for loading content filters that was per-ProcessPool. Content filters now follow
the same pattern as UserScripts and UserStyleSheets as being per-UserContentController.
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController _addUserContentFilter:]):
(-[WKUserContentController _removeAllUserContentFilters]):
* UIProcess/API/Cocoa/WKUserContentControllerInternal.h:
* UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Added.
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserContentFilter):
(WebKit::WebUserContentControllerProxy::removeAllUserContentFilters):
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addUserContentFilters):
(WebKit::WebUserContentController::removeAllUserContentFilters):
* WebProcess/UserContent/WebUserContentController.h:
* WebProcess/UserContent/WebUserContentController.messages.in:
Pipe user content filters over to all the WebProcesses that the UserContentController is
connected to.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
2015-01-17 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Add Cocoa delegate for logging diagnostic messages
https://bugs.webkit.org/show_bug.cgi?id=140410
Reviewed by Sam Weinig.
Add Cocoa delegate for logging diagnostic messages.
* UIProcess/API/APIDiagnosticLoggingClient.h: Copied from Source/WebKit2/UIProcess/WebPageDiagnosticLoggingClient.h.
(API::DiagnosticLoggingClient::~DiagnosticLoggingClient):
(API::DiagnosticLoggingClient::logDiagnosticMessage):
(API::DiagnosticLoggingClient::logDiagnosticMessageWithResult):
(API::DiagnosticLoggingClient::logDiagnosticMessageWithValue):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageDiagnosticLoggingClient):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView _diagnosticLoggingDelegate]):
(-[WKWebView _setDiagnosticLoggingDelegate:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h: Copied from Source/WebKit2/UIProcess/WebPageDiagnosticLoggingClient.h.
* UIProcess/Cocoa/DiagnosticLoggingClient.h: Copied from Source/WebKit2/UIProcess/WebPageDiagnosticLoggingClient.h.
* UIProcess/Cocoa/DiagnosticLoggingClient.mm: Added.
(WebKit::DiagnosticLoggingClient::DiagnosticLoggingClient):
(WebKit::DiagnosticLoggingClient::delegate):
(WebKit::DiagnosticLoggingClient::setDelegate):
(WebKit::DiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::DiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::DiagnosticLoggingClient::logDiagnosticMessageWithValue):
* UIProcess/WebPageDiagnosticLoggingClient.cpp:
(WebKit::WebPageDiagnosticLoggingClient::WebPageDiagnosticLoggingClient):
* UIProcess/WebPageDiagnosticLoggingClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setDiagnosticLoggingClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):
(WebKit::WebPageProxy::initializeDiagnosticLoggingClient): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::diagnosticLoggingClient):
* WebKit2.xcodeproj/project.pbxproj:
2015-01-17 David Kilzer <ddkilzer@apple.com>
REGRESSION (r178618): Change to WKWebViewConfiguration broke iOS build
<https://bugs.webkit.org/show_bug.cgi?id=140559>
Blind fix to address the following build failure:
Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:79:7: error: interface type cannot be statically allocated
T m_value;
^
*
Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:94:55: note: in instantiation of template class 'LazyInitialized<WKWebViewContentProviderRegistry>' requested here
LazyInitialized<WKWebViewContentProviderRegistry> _contentProviderRegistry;
^
Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:53:21: error: assigning to 'WKWebViewContentProviderRegistry *' from incompatible type 'RetainPtr<WKWebViewContentProviderRegistry *>'
m_value = f();
^ ~~~
Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:222:37: note: in instantiation of function template specialization 'LazyInitialized<WKWebViewContentProviderRegistry>::get<(lambda at Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:222:41)>' requested here
return _contentProviderRegistry.get([] { return adoptNS([[WKWebViewContentProviderRegistry alloc] init]); });
^
Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:57:24: error: property 'get' not found on object of type 'WKWebViewContentProviderRegistry *'
return m_value.get();
^
3 errors generated.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm: Change
_contentProviderRegistry to be a LazyInitialized<RetainPtr<>> to
match other instance variables.
2015-01-16 Sam Weinig <sam@webkit.org>
Add a basic configuration object for WKView
https://bugs.webkit.org/show_bug.cgi?id=140559
Reviewed by Anders Carlsson.
- Adds WKPageConfigurationRef (backed by API::PageConfiguration). WKWebView configuration
is not yet bridged to this, but that will happen soon. For now, it has a few basic
configuration options.
- Adds WKUserContentControllerRef as C-SPI version of WKUserContentController.
- Adds WKUserScriptRef as C-SPI version of WKUserScript.
* Shared/API/APIObject.h:
* Shared/API/c/WKBase.h:
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toWKUserScriptInjectionTime):
* UIProcess/API/APIPageConfiguration.cpp: Added.
(API::PageConfiguration::PageConfiguration):
(API::PageConfiguration::~PageConfiguration):
(API::PageConfiguration::processPool):
(API::PageConfiguration::setProcessPool):
(API::PageConfiguration::userContentController):
(API::PageConfiguration::setUserContentController):
(API::PageConfiguration::pageGroup):
(API::PageConfiguration::setPageGroup):
(API::PageConfiguration::preferences):
(API::PageConfiguration::setPreferences):
(API::PageConfiguration::relatedPage):
(API::PageConfiguration::setRelatedPage):
(API::PageConfiguration::webPageConfiguration):
* UIProcess/API/APIPageConfiguration.h: Added.
(API::PageConfiguration::create):
* UIProcess/API/APIUserScript.cpp: Added.
(API::generateIdentifier):
(API::UserScript::generateUniqueURL):
* UIProcess/API/APIUserScript.h:
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKPageConfigurationRef.cpp: Added.
(WKPageConfigurationGetTypeID):
(WKPageConfigurationCreate):
(WKPageConfigurationGetContext):
(WKPageConfigurationSetContext):
(WKPageConfigurationGetPageGroup):
(WKPageConfigurationSetPageGroup):
(WKPageConfigurationGetUserContentController):
(WKPageConfigurationSetUserContentController):
(WKPageConfigurationGetPreferences):
(WKPageConfigurationSetPreferences):
(WKPageConfigurationGetRelatedPage):
(WKPageConfigurationSetRelatedPage):
* UIProcess/API/C/WKPageConfigurationRef.h: Added.
* UIProcess/API/C/WKUserContentControllerRef.cpp: Added.
(WKUserContentControllerGetTypeID):
(WKUserContentControllerCreate):
(WKUserContentControllerCopyUserScripts):
(WKUserContentControllerAddUserScript):
(WKUserContentControllerRemoveAllUserScripts):
* UIProcess/API/C/WKUserContentControllerRef.h: Added.
* UIProcess/API/C/WKUserScriptRef.cpp: Added.
(WKUserScriptGetTypeID):
(WKUserScriptCreateWithSource):
(WKUserScriptCopySource):
(WKUserScriptGetInjectionTime):
(WKUserScriptGetMainFrameOnly):
* UIProcess/API/C/WKUserScriptRef.h: Added.
* UIProcess/API/C/WebKit2_C.h:
* UIProcess/API/Cocoa/WKUserScript.mm:
(-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]):
(generateIdentifier): Deleted.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(LazyInitialized::get):
(LazyInitialized::set):
(LazyInitialized::peek):
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:configurationRef:]):
* UIProcess/UserContent/WebUserContentControllerProxy.h:
(WebKit::WebUserContentControllerProxy::create):
* WebKit2.xcodeproj/project.pbxproj:
2015-01-16 Anders Carlsson <andersca@apple.com>
Pass the connection along to WebProcessLifetimeTracker
https://bugs.webkit.org/show_bug.cgi?id=140569
Reviewed by Andreas Kling.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::connectionWillOpen):
(WebKit::WebPageProxy::connectionDidClose):
* UIProcess/WebProcessLifetimeTracker.cpp:
(WebKit::WebProcessLifetimeTracker::connectionWillOpen):
(WebKit::WebProcessLifetimeTracker::connectionDidClose):
(WebKit::WebProcessLifetimeTracker::connectionWillClose): Deleted.
* UIProcess/WebProcessLifetimeTracker.h:
2015-01-16 Anders Carlsson <andersca@apple.com>
More WebPageProxy CTTE
https://bugs.webkit.org/show_bug.cgi?id=140565
Reviewed by Andreas Kling.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::connectionWillOpen):
(WebKit::WebPageProxy::connectionDidClose):
(WebKit::WebPageProxy::connectionWillClose): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::connectionDidClose):
2015-01-16 Anders Carlsson <andersca@apple.com>
Remove dead code
https://bugs.webkit.org/show_bug.cgi?id=140563
Reviewed by Geoffrey Garen.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processWillOpenConnection): Deleted.
(WebKit::WebProcessPool::processWillCloseConnection): Deleted.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::connectionDidClose):
2015-01-16 Anders Carlsson <andersca@apple.com>
Sprinkle some CTTE in ChildProcessProxy member functions
https://bugs.webkit.org/show_bug.cgi?id=140562
Reviewed by Andreas Kling.
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
(WebKit::ChildProcessProxy::clearConnection):
(WebKit::ChildProcessProxy::connectionWillOpen):
(WebKit::ChildProcessProxy::connectionDidClose):
(WebKit::ChildProcessProxy::connectionWillClose): Deleted.
* Shared/ChildProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::connectionWillOpen): Deleted.
(WebKit::DatabaseProcessProxy::connectionWillClose): Deleted.
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::connectionWillOpen):
(WebKit::NetworkProcessProxy::connectionWillClose): Deleted.
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::connectionDidClose):
(WebKit::WebProcessProxy::connectionWillClose): Deleted.
* UIProcess/WebProcessProxy.h:
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::initializeConnection):
* UIProcess/mac/SecItemShimProxy.h:
2015-01-16 Beth Dakin <bdakin@apple.com>
Should cancel immediate action sooner in WK2
https://bugs.webkit.org/show_bug.cgi?id=140561
-and corresponding-
rdar://problem/19490114
Reviewed by Tim Horton.
_cancelImmediateActionIfNeeded will cancel the immediate action if there is no
animation controller or if the DDActionContext doesn’t want to use its actions.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _cancelImmediateActionIfNeeded]):
Call _cancelImmediateActionIfNeeded to cancel earlier.
(-[WKImmediateActionController didPerformActionMenuHitTest:userData:]):
Re-factor this code to use the newly-added method _cancelImmediateActionIfNeeded
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
2015-01-16 Anders Carlsson <andersca@apple.com>
Don't try to send SetSession messages before the web page has been constructed in the web process
https://bugs.webkit.org/show_bug.cgi?id=140558
Reviewed by Andreas Kling.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
We already send the session ID along in the page creation parameters so just message the network process
if we need to create an ephemeral session.
(WebKit::WebPageProxy::setSessionID):
Add an isValid call for good measure.
2015-01-16 Anders Carlsson <andersca@apple.com>
Log unhandled messages in the web process
https://bugs.webkit.org/show_bug.cgi?id=140549
Reviewed by Andreas Kling.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveSyncMessage):
(WebKit::WebProcess::didReceiveMessage):
2015-01-16 Shivakumar JM <shiva.jm@samsung.com>
Fix build warning in WebKit2/UIProcess module.
https://bugs.webkit.org/show_bug.cgi?id=140538
Reviewed by Csaba Osztrogonác.
Fix build warnings by removing parameter name from functions
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::processWillOpenConnection):
(WebKit::StorageManager::processDidCloseConnection):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processWillOpenConnection):
(WebKit::WebProcessPool::processWillCloseConnection):
2015-01-15 Csaba Osztrogonác <ossy@webkit.org>
Remove ENABLE(SQL_DATABASE) guards
https://bugs.webkit.org/show_bug.cgi?id=140434
Reviewed by Darin Adler.
* Configurations/FeatureDefines.xcconfig:
* Shared/OriginAndDatabases.cpp:
* Shared/OriginAndDatabases.h:
* Shared/WebCoreArgumentCoders.cpp:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetDatabaseManager):
* UIProcess/API/C/WKDatabaseManager.cpp:
(WKDatabaseManagerGetTypeID):
(WKDatabaseManagerGetOriginKey):
(WKDatabaseManagerGetOriginQuotaKey):
(WKDatabaseManagerGetOriginUsageKey):
(WKDatabaseManagerGetDatabaseDetailsKey):
(WKDatabaseManagerGetDatabaseDetailsNameKey):
(WKDatabaseManagerGetDatabaseDetailsDisplayNameKey):
(WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCreationTimeKey):
(WKDatabaseManagerGetDatabaseDetailsModificationTimeKey):
(WKDatabaseManagerSetClient):
(WKDatabaseManagerGetDatabasesByOrigin):
(WKDatabaseManagerGetDatabaseOrigins):
(WKDatabaseManagerDeleteDatabasesWithNameForOrigin):
(WKDatabaseManagerDeleteDatabasesForOrigin):
(WKDatabaseManagerDeleteAllDatabases):
(WKDatabaseManagerSetQuotaForOrigin):
* UIProcess/API/efl/EwkView.cpp:
(EwkView::informDatabaseQuotaReached):
* UIProcess/WebDatabaseManagerProxy.cpp:
* UIProcess/WebDatabaseManagerProxy.h:
* UIProcess/WebDatabaseManagerProxy.messages.in:
* UIProcess/WebProcessPool.cpp:
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::PageUIClientEfl):
(WebKit::PageUIClientEfl::exceededDatabaseQuota):
* UIProcess/efl/PageUIClientEfl.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::clearAllDatabases):
(WebKit::InjectedBundle::setDatabaseQuota):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
* WebProcess/WebCoreSupport/WebDatabaseManager.h:
* WebProcess/WebCoreSupport/WebDatabaseManager.messages.in:
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp:
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
2015-01-15 Anders Carlsson <andersca@apple.com>
Add a connection parameter to StorageManager willOpen/didClose functions
https://bugs.webkit.org/show_bug.cgi?id=140527
Reviewed by Tim Horton.
Rename processWillCloseConnection to processDidCloseConnection and pass connections
to both functions since in the near future we won't be able to get the connection from
the web process proxy in these scenarios.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::processWillOpenConnection):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::processWillCloseConnection): Deleted.
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::webProcessWillOpenConnection):
(WebKit::WebsiteDataStore::webProcessDidCloseConnection):
2015-01-15 Chris Dumez <cdumez@apple.com>
[WK2] Wire diagnostic logging messages through the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=140486
Reviewed by Sam Weinig.
Wire diagnostic logging messages through the UIProcess.
Eventually, the corresponding bundle API should go away.
* CMakeLists.txt:
Add UIProcess/WebPageDiagnosticLoggingClient.cpp to CMake.
* Shared/API/c/WKDiagnosticLoggingResultType.h:
Extract WKDiagnosticLoggingResultType enumeration from
WKBundlePageDiagnosticLoggingClient.h into its own header so that
it can be shared with the new WKPageDiagnosticLoggingClient.h.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toDiagnosticLoggingResultType):
Add WebCore::DiagnosticLoggingResultType <-> WKDiagnosticLoggingResultType
casting functions.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageDiagnosticLoggingClient):
* UIProcess/API/C/WKPage.h:
Add WKPage API so that the application can set the DiagnosticLoggingClient.
* UIProcess/API/C/WKPageDiagnosticLoggingClient.h: Added.
New WK2 diagnostic logging client that will eventually replace the existing
WKBundlePageDiagnosticLoggingClient.h injected bundle client.
* UIProcess/WebPageDiagnosticLoggingClient.cpp: Copied from Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp.
* UIProcess/WebPageDiagnosticLoggingClient.h: Copied from Source/WebCore/page/DiagnosticLoggingClient.h.
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
Handle new IPC messages for logging diagnostic messages.
* UIProcess/WebPageProxy.messages.in:
Add 3 IPC messages for logging diagnostic messages.
* WebKit2.xcodeproj/project.pbxproj:
Add new files to XCode project.
* WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h:
Remove WKDiagnosticLoggingResultType enum as it was moved to its own
header.
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h:
Use WebCore::DiagnosticLoggingResultType enum type instead of
WKDiagnosticLoggingResultType and call toAPI() to convert to
WKDiagnosticLoggingResultType type.
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
Send IPC to WebPageProxy in addition to calling the injected bundle client.
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
Use new DiagnosticLoggingResultType enum instead of the old LogType one.
2015-01-15 Dan Bernstein <mitz@apple.com>
Added availability annotations to modern Cocoa SPI.
Rubber-stamped by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2015-01-15 Anders Carlsson <andersca@apple.com>
Fix assertions on the Mountain Lion bots.
It is allowed to call addWorkQueueMessageReceiver even if the connection is open
so remove that assertion.
* Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
2015-01-15 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed build fix after r178536.
Initialize member variables in the proper order.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
2015-01-15 Enrica Casucci <enrica@apple.com>
[WK2] Add support for fully editable WKWebView.
https://bugs.webkit.org/show_bug.cgi?id=140515
Reviewed by Anders Carlsson.
WKWebView has now a new property (_editable) to control
the editability of the entire content.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isEditable]):
(-[WKWebView _setEditable:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setEditable):
(WebKit::WebPageProxy::creationParameters):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isEditable):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setEditable):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2015-01-15 Anders Carlsson <andersca@apple.com>
Clearing the website data store should clear local storage
https://bugs.webkit.org/show_bug.cgi?id=140507
Reviewed by Andreas Kling.
* Shared/WebsiteData/WebsiteDataTypes.h:
Add WebsiteDataTypeLocalStorage.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
Add WKWebsiteDataTypeLocalStorage
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWebsiteDataTypes):
Handle WKWebsiteDataTypeLocalStorage.
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::fileModificationTime):
Use an early return.
(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
Change this to take an std::chrono::system_clock::time_point and don't
try to modifiy m_origins while iterating it.
* UIProcess/Storage/LocalStorageDatabaseTracker.h:
Update declarations.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
Change this to take an std::chrono::system_clock::time_point.
* UIProcess/Storage/StorageManager.h:
Update declarations.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
Remove data from the storage manager as well.
2015-01-15 Anders Carlsson <andersca@apple.com>
Give WebsiteDataStore a StorageManager
https://bugs.webkit.org/show_bug.cgi?id=140505
Reviewed by Andreas Kling.
The process pool storage manager is still around but is only used for clearing data. It will be removed
completely in an upcoming commit.
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Set up the local storage directory.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(websiteDataDirectoryURL):
Export this so it can be called from APIWebsiteDataStoreCocoa.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
Call WebsiteDataStore::cloneSessionData instead.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::websiteDataStore):
Add getter.
* UIProcess/WebProcessPool.cpp:
(WebKit::websiteDataStoreConfiguration):
Update this to take a WebProcessPoolConfiguration object and assign the local storage directory.
(WebKit::WebProcessPool::WebProcessPool):
Pass the configuration to websiteDataStoreConfiguration.
(WebKit::WebProcessPool::processWillOpenConnection):
(WebKit::WebProcessPool::processWillCloseConnection):
Remove storage manager calls.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
When creating a persistent data store, also create a storage manager.
(WebKit::WebsiteDataStore::cloneSessionData):
Clone the session storage namespace.
(WebKit::WebsiteDataStore::webPageWasAdded):
Create a session storage namespace for this page.
(WebKit::WebsiteDataStore::webPageWasRemoved):
Destroy the session storage namespace.
(WebKit::WebsiteDataStore::webProcessWillOpenConnection):
Tell the storage manager about the new process connection.
(WebKit::WebsiteDataStore::webPageWillOpenConnection):
Set the allowed connection.
(WebKit::WebsiteDataStore::webPageDidCloseConnection):
Clear the allowed connection.
(WebKit::WebsiteDataStore::webProcessDidCloseConnection):
Tell the storage manager that the process connection has been closed.
* UIProcess/WebsiteData/WebsiteDataStore.h:
Add new members.
2015-01-15 Anders Carlsson <andersca@apple.com>
More work on the lifetime observer
https://bugs.webkit.org/show_bug.cgi?id=140500
Reviewed by Andreas Kling.
Add webPageWasAdded/webPageWasRemoved functions; these will be called first and last during the
lifetime of the web page. Also remove removeObserver since nobody is calling it.
* UIProcess/WebProcessLifetimeObserver.h:
(WebKit::WebProcessLifetimeObserver::webPageWasAdded):
(WebKit::WebProcessLifetimeObserver::webPageWasRemoved):
* UIProcess/WebProcessLifetimeTracker.cpp:
(WebKit::WebProcessLifetimeTracker::addObserver):
(WebKit::WebProcessLifetimeTracker::pageWasInvalidated):
(WebKit::WebProcessLifetimeTracker::removeObserver): Deleted.
* UIProcess/WebProcessLifetimeTracker.h:
2015-01-14 Anders Carlsson <andersca@apple.com>
Don't pass an allowed connection when creating a session storage namespace
https://bugs.webkit.org/show_bug.cgi?id=140482
Reviewed by Sam Weinig.
Instead, always call setAllowedSessionStorageNamespaceConnection. This will make it easier to
move the storage manager into WebsiteDataStore and make it use the process lifetime observer machinery.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::createSessionStorageNamespace):
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
2015-01-15 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r177075): [GTK] Creating a second web view disables accelerated compositing in existing web view
https://bugs.webkit.org/show_bug.cgi?id=140494
Reviewed by Gustavo Noronha Silva.
The problem is that r177075 moved the creation of the redirected
XComposite window to realize method, but leaving the call to
webkitWebViewBaseUpdatePreferences() in both places Realize() and
CreateWebPage(). webkitWebViewBaseUpdatePreferences() only updates
the accelerating compositing setting nowadays, depending on
whether the redirected XComposited window could be created or not
(something that depends on whether XRender, XComposite and XDamage
extensions are available in the current display). So, when the
first web view is created, webkitWebViewBaseUpdatePreferences() is
called first from CreateWebPage(), and always disabling
accelerated compositing because the redirected window hasn't been
created yet, and then from Realize() right after the redirected
window is created so that accelerated compositing is enabled. When
the second web view is created the same happens, but since
settings are shared among web views, the first call to
webkitWebViewBaseUpdatePreferences() from CreateWebPage() disables
accelerated compositing and the web page exists accelerated
compositing mode and never enters it again unless the page is
reloaded. I guess the web page should enter accelerated
compositing mode again when the setting is enabled again from
Realize(), but since the setting is global and doesn't depend on
every web view, we should never disable it once it has been
enabled in any case.
Since we want to enable accelerated compositing mode when the
redirected XComposite window has been successfully created, we can
use the SetNativeSurfaceHandleForCompositing message to enable the
setting and remove webkitWebViewBaseUpdatePreferences().
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewUpdateSettings):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize):
(webkitWebViewBaseCreateWebPage):
(webkitWebViewBaseUpdatePreferences): Deleted.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing):
2015-01-14 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r178464.
* UIProcess/API/gtk/WebKitUserContent.cpp:
(_WebKitUserScript::_WebKitUserScript):
(webkitUserScriptGetUserScript):
* UIProcess/API/gtk/WebKitUserContentPrivate.h:
2015-01-14 Sam Weinig <sam@webkit.org>
Convert WKUserScript to be an API::Object bridged object
https://bugs.webkit.org/show_bug.cgi?id=140471
Reviewed by Dan Bernstein.
* Shared/API/APIObject.h:
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Add Type::UserScript.
* UIProcess/API/APIUserScript.h: Added.
Add API object for UserScripts.
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController init]):
(-[WKUserContentController userScripts]):
(-[WKUserContentController addUserScript:]):
(-[WKUserContentController removeAllUserScripts]):
(toWebCoreUserScriptInjectionTime): Deleted.
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserScript):
(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
* UIProcess/UserContent/WebUserContentControllerProxy.h:
(WebKit::WebUserContentControllerProxy::userScripts):
Store the WKUserScripts in the WebUserContentControllerProxy instead of the
Objective-C layer WKUserContentController, to allow creation of the object
from either the Objective-C or C++ sides.
* UIProcess/API/Cocoa/WKUserScript.mm:
(generateIdentifier):
(-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]):
(-[WKUserScript source]):
(-[WKUserScript injectionTime]):
(-[WKUserScript isForMainFrameOnly]):
(-[WKUserScript _apiObject]):
* UIProcess/API/Cocoa/WKUserScriptInternal.h:
(API::wrapper):
(API::toWebCoreUserScriptInjectionTime):
(API::toWKUserScriptInjectionTime):
Convert to get properties from the API::UserScript.
* WebKit2.xcodeproj/project.pbxproj:
Add the new file.
2015-01-14 Anders Carlsson <andersca@apple.com>
Add per page connection callbacks to the lifetime observer
https://bugs.webkit.org/show_bug.cgi?id=140475
Reviewed by Andreas Kling.
* UIProcess/WebProcessLifetimeObserver.cpp:
(WebKit::WebProcessLifetimeObserver::addWebPage):
(WebKit::WebProcessLifetimeObserver::removeWebPage):
* UIProcess/WebProcessLifetimeObserver.h:
(WebKit::WebProcessLifetimeObserver::webPageWillOpenConnection):
(WebKit::WebProcessLifetimeObserver::webPageDidCloseConnection):
2015-01-14 Anders Carlsson <andersca@apple.com>
Make WebsiteDataStore a WebProcessLifetimeObserver
https://bugs.webkit.org/show_bug.cgi?id=140472
Reviewed by Andreas Kling.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::addWebPage): Deleted.
(WebKit::WebsiteDataStore::removeWebPage): Deleted.
* UIProcess/WebsiteData/WebsiteDataStore.h:
2015-01-14 Chris Dumez <cdumez@apple.com>
[WK2][iOS] Add private API to toggle diagnostic logging setting
https://bugs.webkit.org/show_bug.cgi?id=140464
Reviewed by Dan Bernstein.
Add private API to toggle diagnostic logging setting for iOS.
Previously, there was only a WK2 private C API for this.
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _diagnosticLoggingEnabled]):
(-[WKPreferences _setDiagnosticLoggingEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2015-01-14 Anders Carlsson <andersca@apple.com>
Switch VisitedLinkProvider over to WebProcessLifetimeObserver
https://bugs.webkit.org/show_bug.cgi?id=140469
Reviewed by Andreas Kling.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
(WebKit::VisitedLinkProvider::removeAll):
(WebKit::VisitedLinkProvider::webProcessWillOpenConnection):
(WebKit::VisitedLinkProvider::webProcessDidCloseConnection):
(WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
(WebKit::VisitedLinkProvider::resizeTable):
(WebKit::VisitedLinkProvider::addProcess): Deleted.
(WebKit::VisitedLinkProvider::removeProcess): Deleted.
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::processDidFinishLaunching):
* UIProcess/WebProcessLifetimeObserver.cpp:
(WebKit::WebProcessLifetimeObserver::processes):
* UIProcess/WebProcessLifetimeObserver.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::disconnect):
(WebKit::WebProcessProxy::addVisitedLinkProvider): Deleted.
(WebKit::WebProcessProxy::didDestroyVisitedLinkProvider): Deleted.
* UIProcess/WebProcessProxy.h:
2015-01-14 Anders Carlsson <andersca@apple.com>
Add willOpen and didClose member functions to WebProcessLifetimeObserver
https://bugs.webkit.org/show_bug.cgi?id=140449
Reviewed by Andreas Kling.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::addVisitedLinkHash):
(WebKit::VisitedLinkProvider::webProcessWillOpenConnection):
(WebKit::VisitedLinkProvider::webProcessDidCloseConnection):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
* UIProcess/WebProcessLifetimeObserver.cpp:
(WebKit::WebProcessLifetimeObserver::addWebPage):
(WebKit::WebProcessLifetimeObserver::removeWebPage):
* UIProcess/WebProcessLifetimeObserver.h:
(WebKit::WebProcessLifetimeObserver::webProcessWillOpenConnection):
(WebKit::WebProcessLifetimeObserver::webProcessDidCloseConnection):
2015-01-14 Dan Bernstein <mitz@apple.com>
Added availability annotations to some modern Cocoa SPI.
Rubber-stamped by Anders Carlsson.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
2015-01-14 Hunseop Jeong <hs85.jeong@samsung.com>
[GTK] Fix build after r178385
https://bugs.webkit.org/show_bug.cgi?id=140429
Reviewed by Csaba Osztrogonác.
* UIProcess/API/gtk/WebKitUserContentManager.cpp:
(_WebKitUserContentManagerPrivate::_WebKitUserContentManagerPrivate):
2015-01-14 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r178412.
https://bugs.webkit.org/show_bug.cgi?id=140433
Wrong fix (Requested by KaL on #webkit).
Reverted changeset:
"Unreviewed GTK build fix after r178385."
http://trac.webkit.org/changeset/178412
2015-01-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Do not schedule a redraw for the redirected XComposite window when not in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=140354
Reviewed by Martin Robinson.
The RedirectedXCompositeWindow uses XDamage to be notified when
the XWindow has been modified. Since the redirected window is
created unconditionally we always receive a XDamage notify when
the window is mapped, and we schedule a redraw in the web view
even when the web view is not in accelerated compositing mode.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize): Only call gtk_widget_queue_draw() when
in accelerated compositing mode.
2015-01-14 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Do not resize the redirected XComposite window when not in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=140353
Reviewed by Martin Robinson.
We create the redirected XComposite window unconditionally, but
with a size of 1x1 to save memory. However, we are always resizing
it, so in the end we always end up with a XWindow allocated for
the same size of the web view, even for web views that never enter
in accelerated compositing mode.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewRenderAcceleratedCompositingResults): Resize the
RedirectedXCompositeWindow to the current web view size to ensure
the sizes match before drawing.
(resizeWebKitWebViewBaseFromAllocation): Only resize the
RedirectedXCompositeWindow when in accelerated compositing mode.
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::resize): Return early if the
given size is the current size.
2015-01-14 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r177075): Flickering when the WebView is realized
https://bugs.webkit.org/show_bug.cgi?id=140352
Reviewed by Martin Robinson.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize): Pass the parent GdkWindow to the
RedirectedXCompositeWindow constructor.
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::supportsXDamageAndXComposite): Get the display from the
given GdkWindow.
(WebKit::RedirectedXCompositeWindow::create): Receive a GdkWindow
instead of the Display and sise that is always 1x1.
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
Use the passed in GdkWindow to get the Display, Visual and Depth
instead of using the window as parent and reparent afterwards.
* UIProcess/gtk/RedirectedXCompositeWindow.h:
2015-01-14 Gwang Yoon Hwang <yoon@igalia.com>
Unreviewed GTK build fix after r178385.
WebUserContentControllerProxy is not RefCounted anymore.
* UIProcess/API/gtk/WebKitUserContentManager.cpp:
(_WebKitUserContentManagerPrivate::_WebKitUserContentManagerPrivate):
2015-01-13 Chris Dumez <cdumez@apple.com>
Unreviewed GTK build fix after r178375.
uint64_t navigationID -> API::Navigation*.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
2015-01-13 Chris Dumez <cdumez@apple.com>
Unreviewed GTK build fix after r178375.
WebFrameProxy is now a reference instead of a pointer.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
2015-01-13 Chris Dumez <cdumez@apple.com>
Unreviewed GTK build fix after r178375.
WebPageProxy is now a reference instead of a pointer.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
2015-01-13 Anders Carlsson <andersca@apple.com>
Fill in more of WebProcessLifetimeTracker
https://bugs.webkit.org/show_bug.cgi?id=140418
Reviewed by Andreas Kling.
* UIProcess/WebProcessLifetimeObserver.cpp:
(WebKit::WebProcessLifetimeObserver::WebProcessLifetimeObserver):
(WebKit::WebProcessLifetimeObserver::~WebProcessLifetimeObserver):
(WebKit::WebProcessLifetimeObserver::addWebPage):
(WebKit::WebProcessLifetimeObserver::removeWebPage):
* UIProcess/WebProcessLifetimeObserver.h:
* UIProcess/WebProcessLifetimeTracker.cpp:
(WebKit::WebProcessLifetimeTracker::WebProcessLifetimeTracker):
(WebKit::WebProcessLifetimeTracker::addObserver):
(WebKit::WebProcessLifetimeTracker::connectionWillOpen):
(WebKit::WebProcessLifetimeTracker::connectionWillClose):
(WebKit::WebProcessLifetimeTracker::pageWasInvalidated):
(WebKit::WebProcessLifetimeTracker::processIsRunning):
* UIProcess/WebProcessLifetimeTracker.h:
2015-01-13 Chris Dumez <cdumez@apple.com>
Unreviewed iOS build fix after r178375.
LoaderClient::didLayout() now takes a reference to the WebPageProxy
instead of a pointer.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
2015-01-13 Sam Weinig <sam@webkit.org>
Convert WebUserContentControllerProxy to an API::Object bridged to WKUserContentController
https://bugs.webkit.org/show_bug.cgi?id=140414
Reviewed by Dan Bernstein.
* Shared/API/APIObject.h:
Add Type::UserContentController.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Allocate WebUserContentControllerProxy using [WKUserContentController alloc].
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController init]):
(-[WKUserContentController dealloc]):
(-[WKUserContentController _apiObject]):
* UIProcess/API/Cocoa/WKUserContentControllerInternal.h:
(WebKit::wrapper):
Convert to using API::ObjectStorage for the internal WebUserContentControllerProxy.
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::create): Deleted.
* UIProcess/UserContent/WebUserContentControllerProxy.h:
Convert to inherit from API::ObjectImpl<> and remove create function.
2015-01-13 Anders Carlsson <andersca@apple.com>
Stub out more of the process lifetime tracker code
https://bugs.webkit.org/show_bug.cgi?id=140411
Reviewed by Sam Weinig.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::connectionWillOpen):
(WebKit::WebPageProxy::connectionWillClose):
* UIProcess/WebProcessLifetimeTracker.cpp:
(WebKit::WebProcessLifetimeTracker::connectionWillOpen):
(WebKit::WebProcessLifetimeTracker::connectionWillClose):
(WebKit::WebProcessLifetimeTracker::pageWasInvalidated):
* UIProcess/WebProcessLifetimeTracker.h:
2015-01-13 Carlos Alberto Lopez Perez <clopez@igalia.com>
[CMake] Unreviewed build fix after r178366.
* CMakeLists.txt: Add new files added by r178366.
2015-01-13 Sam Weinig <sam@webkit.org>
Move more of the Navigation infrastructure down to WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=140395
Reviewed by Anders Carlsson.
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didStartProvisionalLoadForFrame):
(API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(API::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(API::LoaderClient::didCommitLoadForFrame):
(API::LoaderClient::didFinishDocumentLoadForFrame):
(API::LoaderClient::didFinishLoadForFrame):
(API::LoaderClient::didFailLoadWithErrorForFrame):
(API::LoaderClient::didSameDocumentNavigationForFrame):
(API::LoaderClient::didReceiveTitleForFrame):
(API::LoaderClient::didFirstLayoutForFrame):
(API::LoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
(API::LoaderClient::didRemoveFrameFromHierarchy):
(API::LoaderClient::didDisplayInsecureContentForFrame):
(API::LoaderClient::didRunInsecureContentForFrame):
(API::LoaderClient::didDetectXSSForFrame):
(API::LoaderClient::didLayout):
(API::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
(API::LoaderClient::didReceiveAuthenticationChallengeInFrame):
(API::LoaderClient::didStartProgress):
(API::LoaderClient::didChangeProgress):
(API::LoaderClient::didFinishProgress):
(API::LoaderClient::processDidBecomeUnresponsive):
(API::LoaderClient::interactionOccurredWhileProcessUnresponsive):
(API::LoaderClient::processDidBecomeResponsive):
(API::LoaderClient::processDidCrash):
(API::LoaderClient::didChangeBackForwardList):
(API::LoaderClient::shouldKeepCurrentBackForwardListItemInList):
(API::LoaderClient::willGoToBackForwardListItem):
(API::LoaderClient::pluginLoadPolicy):
(API::LoaderClient::didFailToInitializePlugin):
(API::LoaderClient::didBlockInsecurePluginVersion):
(API::LoaderClient::webGLLoadPolicy):
(API::LoaderClient::resolveWebGLLoadPolicy):
(API::LoaderClient::didDestroyNavigation): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didCommitLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame):
(WebKit::NavigationState::LoaderClient::didLayout):
(WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
(WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame):
(WebKit::NavigationState::LoaderClient::processDidCrash):
(WebKit::NavigationState::LoaderClient::didDestroyNavigation): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeBackForwardList):
(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList):
(WebKit::WebPageProxy::findPlugin):
(WebKit::WebPageProxy::didStartProgress):
(WebKit::WebPageProxy::didChangeProgress):
(WebKit::WebPageProxy::didFinishProgress):
(WebKit::WebPageProxy::didDestroyNavigation):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::didReceiveTitleForFrame):
(WebKit::WebPageProxy::didFirstLayoutForFrame):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
(WebKit::WebPageProxy::didLayout):
(WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
(WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
(WebKit::WebPageProxy::didRunInsecureContentForFrame):
(WebKit::WebPageProxy::didDetectXSSForFrame):
(WebKit::WebPageProxy::webGLPolicyForURL):
(WebKit::WebPageProxy::resolveWebGLPolicyForURL):
(WebKit::WebPageProxy::processDidBecomeUnresponsive):
(WebKit::WebPageProxy::interactionOccurredWhileProcessUnresponsive):
(WebKit::WebPageProxy::processDidBecomeResponsive):
(WebKit::WebPageProxy::processDidCrash):
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame):
(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
(WebKit::WebPageProxy::didFailToInitializePlugin):
(WebKit::WebPageProxy::didBlockInsecurePluginVersion):
- Moves conversion from navigationID to API::Navigation into WebPageProxy
from NavigationState.
- Changes API::LoaderClient to pass WebPageProxy and WebFrameProxy by reference
rather than pointer, and to take an API::Navigation instead of a navigationID.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
Move access of the navigationID to after calling into the client bundle to avoid
passing a navigationID of a deleted navigation to the UIProcess. This problem was
caught via the WebKit2.StopLoadingDuringDidFailProvisionalLoadTest API test, which
now exercises the Navigation code path. Had that test been written using a Navigation
delegate, the issue would have happened prior to this change.
2015-01-13 Anders Carlsson <andersca@apple.com>
Begin stubbing out a per page process lifetime tracker object
https://bugs.webkit.org/show_bug.cgi?id=140399
Reviewed by Beth Dakin.
This will make it easier for certain objects that track a set of web page proxy objects
(user content controller, visited link provider, data store) to be notified when their
underlying processes come and go.
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessLifetimeObserver.cpp: Added.
* UIProcess/WebProcessLifetimeObserver.h: Added.
* UIProcess/WebProcessLifetimeTracker.cpp: Added.
(WebKit::WebProcessLifetimeTracker::WebProcessLifetimeTracker):
(WebKit::WebProcessLifetimeTracker::~WebProcessLifetimeTracker):
(WebKit::WebProcessLifetimeTracker::addObserver):
(WebKit::WebProcessLifetimeTracker::removeObserver):
* UIProcess/WebProcessLifetimeTracker.h: Added.
* WebKit2.xcodeproj/project.pbxproj:
2015-01-12 Carlos Alberto Lopez Perez <clopez@igalia.com>
[CMake] Unreviewed build fix after r178309.
* CMakeLists.txt: Rename moved files at r178309.
2015-01-11 Sam Weinig <sam@webkit.org>
Remove support for SharedWorkers
https://bugs.webkit.org/show_bug.cgi?id=140344
Reviewed by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig:
* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createSharedWorkerStrategy): Deleted.
* NetworkProcess/NetworkProcessPlatformStrategies.h:
* WebKit2Prefix.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createSharedWorkerStrategy): Deleted.
(WebKit::WebPlatformStrategies::isAvailable): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2015-01-12 Anders Carlsson <andersca@apple.com>
Move a couple of API files to UIProcess/API.
Rubber-stamped by Tim Horton.
* UIProcess/API/APINavigationData.cpp: Renamed from Source/WebKit2/UIProcess/APINavigationData.cpp.
* UIProcess/API/APINavigationData.h: Renamed from Source/WebKit2/UIProcess/APINavigationData.h.
* UIProcess/API/APIProcessPoolConfiguration.cpp: Renamed from Source/WebKit2/UIProcess/APIProcessPoolConfiguration.cpp.
* UIProcess/API/APIProcessPoolConfiguration.h: Renamed from Source/WebKit2/UIProcess/APIProcessPoolConfiguration.h.
* UIProcess/API/APISession.cpp: Renamed from Source/WebKit2/UIProcess/APISession.cpp.
* UIProcess/API/APISession.h: Renamed from Source/WebKit2/UIProcess/APISession.h.
* WebKit2.xcodeproj/project.pbxproj:
2015-01-12 Martin Hock <mhock@apple.com>
[iOS][WK2] Push content bounds on layer tree commit to prevent drawing stale fixed position rects
https://bugs.webkit.org/show_bug.cgi?id=140264
<rdar://problem/18873545>
Reviewed by Benjamin Poulain.
When a resize occurs, we need to push the new content bounds to the web
process or stale fixed position rects may draw incorrectly.
As an example, suppose that WKWebView in UIProcess performs
_frameOrBoundsChanged with new view bounds.
Meanwhile, we'll switch to WebContentProcess and perform layout.
Switching back to UIProcess, _frameOrBoundsChanged calls WKWebView
_updateVisibleContentRects.
_updateVisibleContentRects calls WKContentView didUpdateVisibleRect with
the new bounds.
didUpdateVisibleRects in turn calls WebPageProxyIOS
computeCustomFixedPositionRect.
computeCustomFixedPositionRect asks for the content bounds from
PageClientImplIOS contentsSize which queries WKContentView's bounds
size. But those bounds are stale because the layer tree commit hasn't
occurred yet.
By informing the WKWebView of the updated content size on layer tree
commit, we ensure that the fixed position rects will be drawn correctly.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _didCommitLayerTree:]): Push new content bounds to the web process.
2015-01-12 Myles C. Maxfield <mmaxfield@apple.com>
Allow targetting the SVG->OTF font converter with ENABLE(SVG_OTF_CONVERTER)
https://bugs.webkit.org/show_bug.cgi?id=136769
Reviewed by Antti Koivisto.
* Configurations/FeatureDefines.xcconfig:
2015-01-12 Zan Dobersek <zdobersek@igalia.com>
Clean up FrameTree::traverseNext() traversals of main frames
https://bugs.webkit.org/show_bug.cgi?id=140338
Reviewed by Andreas Kling.
There's no reason to pass the main frame as the stayWithin parameter
to FrameTree::traverseNext() when traversing over that same main frame.
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::searchWithSpotlight):
2015-01-12 Timothy Horton <timothy_horton@apple.com>
Multi-rect TextIndicators are vertically flipped in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=140350
<rdar://problem/19441243>
Reviewed by Beth Dakin.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
Adjust to the field name changes.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setTextIndicator:fadeOut:]):
Convert the textBoundingRect from root view to screen coordinates.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
(WebKit::FindController::drawRect):
Adjust to the new name, and use contentsToRootView when comparing against
the stored m_findIndicatorRect.
2015-01-11 Ryuan Choi <ryuan.choi@navercorp.com>
[CoordinatedGraphics] Suspend or resume when visibility is changed
https://bugs.webkit.org/show_bug.cgi?id=140285
Reviewed by Gyuyoung Kim.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp: Copied the logic from TiledCoreAnimationDrawingArea.
(WebKit::CoordinatedDrawingArea::viewStateDidChange):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
2015-01-10 Gwang Yoon Hwang <yoon@igalia.com>
[ThreadedCompositor] Prevent excessive rendering call.
https://bugs.webkit.org/show_bug.cgi?id=140297
Reviewed by Žan Doberšek.
Not to waste CPU time on waiting V-Sync interval, the update timer of
compositing thread should be throttled.
In case of updating scene state, this update timer should be called as
soon as possible. However, when CoordinatedGraphicsScene requests update
viewport to advance the animations, this call should be scheduled for
a next frame.
No new tests. No change in functionality.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::CompositingRunLoop::CompositingRunLoop):
(WebKit::CompositingRunLoop::setUpdateTimer):
(WebKit::CompositingRunLoop::updateTimerFired):
(WebKit::ThreadedCompositor::setNeedsDisplay):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::didChangeVisibleRect):
(WebKit::ThreadedCompositor::scheduleDisplayIfNeeded): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
2015-01-09 Sam Weinig <sam@webkit.org>
Try to fix the GTK and EFL builds.
* CMakeLists.txt:
2015-01-09 Anders Carlsson <andersca@apple.com>
Get rid of the database strategy
https://bugs.webkit.org/show_bug.cgi?id=140322
Reviewed by Sam Weinig.
* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createDatabaseStrategy): Deleted.
* NetworkProcess/NetworkProcessPlatformStrategies.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createDatabaseStrategy): Deleted.
(WebKit::WebPlatformStrategies::getDatabaseServer): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2015-01-09 Dan Bernstein <mitz@apple.com>
[Cocoa] Remove deprecated WKRenderingProgressEvents
https://bugs.webkit.org/show_bug.cgi?id=140325
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WKRenderingProgressEvents.h: Removed.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
2015-01-09 Sam Weinig <sam@webkit.org>
Move Navigation creation out of the Cocoa layer and down into the WebPageProxy level
https://bugs.webkit.org/show_bug.cgi?id=140319
Reviewed by Anders Carlsson.
- Adds WebNavigationState, a class at the WebPageProxy level to handle the creation
and storage of Navigations. Starts moving some of the functionality from NavigationState
there.
* UIProcess/API/APINavigation.cpp:
(API::Navigation::Navigation):
* UIProcess/API/APINavigation.h:
(API::Navigation::create):
(API::Navigation::navigationID):
Have each Navigation store its navigationID and generate it via the WebNavigationState
that is passed to the constructor.
* 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 _restoreFromSessionStateData:]):
(-[WKWebView _restoreSessionState:andNavigate:]):
Update for WebPageProxy functions returning the Navigations directly, rather than
the navigationID.
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
Remove creation of the load request navigation which is now handled by the WebPageProxy.
(WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didCommitLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame):
(WebKit::NavigationState::LoaderClient::didDestroyNavigation):
(WebKit::NavigationState::LoaderClient::processDidCrash):
Change to get/take/remove Navigations from the WebPageProxy's WebNavigationState
(WebKit::NavigationState::createLoadRequestNavigation): Deleted.
(WebKit::NavigationState::createBackForwardNavigation): Deleted.
(WebKit::NavigationState::createReloadNavigation): Deleted.
(WebKit::NavigationState::createLoadDataNavigation): Deleted.
Move Navigation creation to WebNavigationState.
* UIProcess/WebFrameListenerProxy.cpp:
(WebKit::WebFrameListenerProxy::WebFrameListenerProxy):
(WebKit::WebFrameListenerProxy::receivedPolicyDecision):
* UIProcess/WebFrameListenerProxy.h:
(WebKit::WebFrameListenerProxy::navigation):
(WebKit::WebFrameListenerProxy::setNavigation):
(WebKit::WebFrameListenerProxy::navigationID): Deleted.
(WebKit::WebFrameListenerProxy::setNavigationID): Deleted.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::receivedPolicyDecision):
* UIProcess/WebFrameProxy.h:
Store a Navigation rather than a navigationID on the WebFrameListenerProxy.
* UIProcess/WebNavigationState.cpp: Added.
(WebKit::WebNavigationState::WebNavigationState):
(WebKit::WebNavigationState::~WebNavigationState):
(WebKit::WebNavigationState::createLoadRequestNavigation):
(WebKit::WebNavigationState::createBackForwardNavigation):
(WebKit::WebNavigationState::createReloadNavigation):
(WebKit::WebNavigationState::createLoadDataNavigation):
(WebKit::WebNavigationState::navigation):
(WebKit::WebNavigationState::takeNavigation):
(WebKit::WebNavigationState::didDestroyNavigation):
(WebKit::WebNavigationState::clearAllNavigations):
* UIProcess/WebNavigationState.h: Added.
(WebKit::WebNavigationState::generateNavigationID):
New class to manage navigations.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcessForReload):
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::restoreFromSessionState):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::generateNavigationID): Deleted.
Create navigations directly rather than generating a navigation ID and letting
the API level create Navigation.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::navigationState):
Add WebNavigationState member and accessor.
* WebKit2.xcodeproj/project.pbxproj:
Add WebNavigationState.h/cpp
2015-01-09 Daniel Bates <dabates@apple.com>
[iOS] Make DumpRenderTree build with public SDK
https://bugs.webkit.org/show_bug.cgi?id=140311
Reviewed by Sam Weinig.
Add more SPI declarations.
* Platform/spi/ios/UIKitSPI.h:
2015-01-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove or use TimelineAgent Resource related event types
https://bugs.webkit.org/show_bug.cgi?id=140155
Reviewed by Timothy Hatcher.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
2015-01-09 Daniel Bates <dabates@apple.com>
[iOS] Fix the WebKit2 build with the public SDK
Forward declare class WebView.
* Platform/spi/ios/UIKitSPI.h:
2015-01-09 Sam Weinig <sam@webkit.org>
Make WKNavigation bridged to API::Navigation (Take 2)
https://bugs.webkit.org/show_bug.cgi?id=140272
Reviewed by Dan Bernstein.
* Shared/API/APIObject.h:
Add Navigation.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Bridge to WKNavigation.
* UIProcess/API/APINavigation.cpp: Added.
(API::Navigation::Navigation):
(API::Navigation::~Navigation):
* UIProcess/API/APINavigation.h: Added.
(API::Navigation::create):
(API::Navigation::request):
Add initial implementation.
* UIProcess/API/Cocoa/WKNavigation.mm:
(-[WKNavigation dealloc]):
(-[WKNavigation _request]):
(-[WKNavigation _apiObject]):
* UIProcess/API/Cocoa/WKNavigationInternal.h:
(API::wrapper):
Implement bridging to API::Navigation and get the request from the underlying object.
* 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 _restoreSessionState:andNavigate:]):
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::createLoadRequestNavigation):
(WebKit::NavigationState::createBackForwardNavigation):
(WebKit::NavigationState::createReloadNavigation):
(WebKit::NavigationState::createLoadDataNavigation):
(WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didCommitLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame):
Switch to storing API::Navigations.
* WebKit2.xcodeproj/project.pbxproj:
Add the new files.
2015-01-09 Gwang Yoon Hwang <yoon@igalia.com>
Rename GraphicsLayerAnimation to TextureMapperAnimation
https://bugs.webkit.org/show_bug.cgi?id=140296
Reviewed by Martin Robinson.
GraphicsLayerAnimation is changed to TextureMapperAnimation
* Scripts/webkit/messages.py:
(headers_for_type):
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<TextureMapperAnimation>::encode):
(IPC::ArgumentCoder<TextureMapperAnimation>::decode):
(IPC::ArgumentCoder<TextureMapperAnimations>::encode):
(IPC::ArgumentCoder<TextureMapperAnimations>::decode):
(IPC::ArgumentCoder<GraphicsLayerAnimation>::encode): Deleted.
(IPC::ArgumentCoder<GraphicsLayerAnimation>::decode): Deleted.
(IPC::ArgumentCoder<GraphicsLayerAnimations>::encode): Deleted.
(IPC::ArgumentCoder<GraphicsLayerAnimations>::decode): Deleted.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
2015-01-08 Enrica Casucci <enrica@apple.com>
[iOS] Cannot paste an image URL in a plain text field in a page.
https://bugs.webkit.org/show_bug.cgi?id=140274
rdar://problem/18590809
Reviewed by Alexey Proskuryakov.
supportedPasteboardTypesForCurrentSelection should include kUTTypeURL for plain
text controls and WebArchivePboardType for rich text controls.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView supportedPasteboardTypesForCurrentSelection]): Remove obsolete and
incorrect FIXME.
2015-01-09 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r178141.
https://bugs.webkit.org/show_bug.cgi?id=140294
Broke multiple API tests (Requested by ap on #webkit).
Reverted changeset:
"Make WKNavigation bridged to API::Navigation"
https://bugs.webkit.org/show_bug.cgi?id=140272
http://trac.webkit.org/changeset/178141
2015-01-08 Benjamin Poulain <benjamin@webkit.org>
[WK2] Start a prototype for declarative site specific extensions
https://bugs.webkit.org/show_bug.cgi?id=140160
Reviewed by Andreas Kling.
Provide a small SPI for OS X. This will likely move
to a better place.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _loadContentExtensionWithIdentifier:serializedRules:successCompletionHandler:errorCompletionHandler:]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::loadContentExtension):
* UIProcess/WebProcessPool.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::loadContentExtension):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2015-01-08 Sam Weinig <sam@webkit.org>
Make WKNavigation bridged to API::Navigation
https://bugs.webkit.org/show_bug.cgi?id=140272
Reviewed by Anders Carlsson.
* Shared/API/APIObject.h:
Add Navigation.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Bridge to WKNavigation.
* UIProcess/API/APINavigation.cpp: Added.
(API::Navigation::Navigation):
(API::Navigation::~Navigation):
* UIProcess/API/APINavigation.h: Added.
(API::Navigation::create):
(API::Navigation::request):
Add initial implementation.
* UIProcess/API/Cocoa/WKNavigation.mm:
(-[WKNavigation dealloc]):
(-[WKNavigation _request]):
(-[WKNavigation _apiObject]):
* UIProcess/API/Cocoa/WKNavigationInternal.h:
(API::wrapper):
Implement bridging to API::Navigation and get the request from the underlying object.
* 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 _restoreSessionState:andNavigate:]):
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::createLoadRequestNavigation):
(WebKit::NavigationState::createBackForwardNavigation):
(WebKit::NavigationState::createReloadNavigation):
(WebKit::NavigationState::createLoadDataNavigation):
(WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didCommitLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):
(WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame):
(WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame):
Switch to storing API::Navigations.
* WebKit2.xcodeproj/project.pbxproj:
Add the new files.
2015-01-08 Dean Jackson <dino@apple.com>
Text not drawn or white-on-white for "Close Page"/"Go Back" button on safe browsing warning page
https://bugs.webkit.org/show_bug.cgi?id=140232
Yet another attempt to get the Safari 7/8 build to work. I've moved the
stubs back into a place where they can be seen (both definition and implementation).
I also removed the previous workaround.
* Shared/API/c/WKDeprecatedFunctions.cpp:
(WKPreferencesSetApplicationChromeModeEnabled): Deleted.
(WKPreferencesGetApplicationChromeModeEnabled): Deleted.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetApplicationChromeModeEnabled):
(WKPreferencesGetApplicationChromeModeEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
2015-01-08 Dean Jackson <dino@apple.com>
Text not drawn or white-on-white for "Close Page"/"Go Back" button on safe browsing warning page
https://bugs.webkit.org/show_bug.cgi?id=140232
Unreviewed followup to try to get the Mavericks Safari to build.
* Shared/WebPreferencesDefinitions.h: Add the application chrome mode definition.
2015-01-08 Dean Jackson <dino@apple.com>
Text not drawn or white-on-white for "Close Page"/"Go Back" button on safe browsing warning page
https://bugs.webkit.org/show_bug.cgi?id=140232
<rdar://problem/19371010>
Reviewed by Anders Carlsson.
Remove the applicationChromeMode setting, but leave stubs in to make
sure existing binaries don't break.
* Shared/API/c/WKDeprecatedFunctions.cpp:
(WKPreferencesSetApplicationChromeModeEnabled):
(WKPreferencesGetApplicationChromeModeEnabled):
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetApplicationChromeModeEnabled): Deleted.
(WKPreferencesGetApplicationChromeModeEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorPageGroups::createInspectorPageGroup):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2015-01-08 Gwang Yoon Hwang <yoon@igalia.com>
[ThreadedCompositor] Update active animations without interrupting the main-thread
https://bugs.webkit.org/show_bug.cgi?id=140245
Reviewed by Martin Robinson.
In the Threaded Compositor, CoordinatedGraphicsScene can directly
request updateViewport to the compositing thread if it has any active
animation.
To keep current behavior of CoordinatedGraphics, this patch modifies
CoordinatedGraphicsScene to remember the constructed thread as a
clientRunLoop, and dispatch updateViewport calls to clientRunLoop.
No new tests. No change in functionality.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop):
(WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::updateViewport):
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::runCompositingThread):
2015-01-08 Gwang Yoon Hwang <yoon@igalia.com>
[GTK] Seperate updateBackingStore from flushCompositingState.
https://bugs.webkit.org/show_bug.cgi?id=136887
Reviewed by Žan Doberšek.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::flushPendingLayerChanges):
Modified to call GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers
2015-01-07 Gwang Yoon Hwang <yoon@igalia.com>
[GTK][ThreadedCompositor] Add support for threaded compositor.
https://bugs.webkit.org/show_bug.cgi?id=118265
Reviewed by Martin Robinson.
This patch introduces a threaded compositor for WebKitGTK+.
It is disabled as a default because it is a initial implementation.
The threaded compositor can be enabled using --threaded-compositor
option at compile time.
No new tests, this is an experimental feature.
* PlatformGTK.cmake:
Adds CoodinatedGraphics and threaded compositor related classes to
support threaded compositor
* Shared/DrawingAreaInfo.h:
Use DrawingAreaImpl for threaded compositor
* UIProcess/API/gtk/WebKitSettings.cpp:
(_WebKitSettingsPrivate::_WebKitSettingsPrivate):
Modified to use forceCompositingMode when the threaded compositor used.
If we does not set this mode here, it cannot draw the root content layer.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: Added.
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: Added.
(WebKit::ThreadedCoordinatedLayerTreeHost::rootLayer):
Implements ThreadedCoordinatedLayerTreeHost to use the threaded
compositor. It is basically similar with CoordinatedLayerTreeHost but it uses ThreadedCompositor instead of IPC.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::create):
(WebKit::DrawingArea::DrawingArea):
* WebProcess/WebPage/DrawingArea.h:
COORDINATED_GRAPHICS_MULTIPROCESS is introduced to classify IPC specific codes
from Coordinated Graphics.
And COORDINATED_GRAPHICS_THREADED is used to guard the threaded
compositor specific codes.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl):
Modified to use forceCompositingMode when the threaded compositor used.
If we does not set this mode here, it will crash because of PageOverlay.
(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged):
(WebKit::DrawingAreaImpl::updateBackingStoreState):
Modified to handle contents / viewport size changes for threaded compositor.
(WebKit::DrawingAreaImpl::attachViewOverlayGraphicsLayer):
Added to support Overlay layer in the threaded compositor.
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing):
Push the surface handle for compositing to the threaded compositor.
* WebProcess/WebPage/DrawingAreaImpl.h: Use COORDINATED_GRAPIHCS_THREADED to guard the threaded compositor related codes.
* WebProcess/WebPage/LayerTreeHost.cpp: Ditto.
* WebProcess/WebPage/LayerTreeHost.h: Ditto.
* WebProcess/WebPage/WebPage.cpp: Ditto.
* WebProcess/WebPage/WebPage.h: Ditto.
* WebProcess/WebPage/WebPage.messages.in: Ditto.
* WebProcess/gtk/WebProcessMainGtk.cpp:
Modified to call XInitThreads to use thread-safe xlib.
2015-01-07 Daniel Bates <dabates@apple.com>
[iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT
https://bugs.webkit.org/show_bug.cgi?id=137371
Reviewed by David Kilzer.
* Configurations/BaseTarget.xcconfig: Append directory $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks to
the list of directories to search for frameworks so that we the linker can find and link against iOS private
frameworks (e.g. AssertionServices).
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::willCacheResponseAsync): Add PLATFORM(IOS)-guard around call to NetworkDiskCacheMonitor::monitorFileBackingStoreCreation().
* Platform/IPC/mac/ConnectionMac.mm: Add header sys/mman.h.
* Platform/spi/ios/BKSProcessAssertionSPI.h: Added.
* Platform/spi/ios/CorePDFSPI.h: Added.
* Platform/spi/ios/DataDetectorsUISPI.h: Added.
* Platform/spi/ios/ManagedConfigurationSPI.h: Added.
* Platform/spi/ios/TCCSPI.h: Added.
* Platform/spi/ios/TextInputSPI.h: Added.
* Platform/spi/ios/UIKitSPI.h: Added.
* Shared/Downloads/ios/DownloadIOS.mm: Add USE(CFNETWORK)-guard around CFNetwork-specific code and conditionally
include header CFNetwork/CFURLDownload.h.
(WebKit::Download::startWithHandle): Ditto.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm: Include header ServersSPI.h instead
of directly including private headers.
* Shared/ios/NativeWebTouchEventIOS.mm: Include header UIKitSPI.h instead of directly including private headers.
* Shared/mac/SandboxUtilities.cpp: Include header sys/param.h.
* UIProcess/API/Cocoa/WKWebView.mm: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm: Ditto.
* UIProcess/API/Cocoa/WKWebViewInternal.h: Ditto.
* UIProcess/API/ios/WKViewIOS.mm: Ditto.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm: Include header ServersSPI.h instead of directly including private headers.
* UIProcess/ios/PageClientImplIOS.mm: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/ProcessAssertionIOS.mm: Include header BKSProcessAssertionSPI.h instead of directly including private headers.
* UIProcess/ios/SmartMagnificationController.mm: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/ViewGestureControllerIOS.mm: Ditto.
* UIProcess/ios/WKActionSheet.mm: Ditto.
* UIProcess/ios/WKActionSheetAssistant.h: Include header DataDetectorsUISPI.h instead of directly including private headers.
* UIProcess/ios/WKActionSheetAssistant.mm: Include headers TCCSPI.h and UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/WKContentView.mm: Include header UIKitSPI.h instead of directly including private headers. Also, move CALayer SPI
forward declarations to QuartzCoreSPI.h
* UIProcess/ios/WKContentViewInteraction.h: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/WKContentViewInteraction.mm: Ditto. Also, include headers CoreGraphicsSPI.h, CoreText/CTFont.h, DataDetectorsUISPI.h,
ManagedConfigurationSPI.h, TextInputSPI.h.
* UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/WKPDFPageNumberIndicator.mm: Ditto.
* UIProcess/ios/WKPDFView.h: Include header CorePDFSPI.h instead of directly including private headers.
* UIProcess/ios/WKPDFView.mm: Ditto. Also, remove header _UIHighlightViewSPI.h and include UIKitSPI.h.
* UIProcess/ios/WKScrollView.h: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/WKSyntheticClickTapGestureRecognizer.h: Ditto.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm: Ditto.
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm: Ditto.
* UIProcess/ios/forms/WKFileUploadPanel.mm: Ditto.
* UIProcess/ios/forms/WKFormInputControl.mm: Ditto.
* UIProcess/ios/forms/WKFormPopover.mm: Ditto.
* UIProcess/ios/forms/WKFormSelectControl.h: Ditto.
* UIProcess/ios/forms/WKFormSelectControl.mm: Ditto.
* UIProcess/ios/forms/WKFormSelectPicker.mm: Ditto.
* UIProcess/ios/forms/WKFormSelectPopover.mm: Ditto.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm: Include headers ServersSPI.h and GraphicsServicesSPI.h instead of
directly including private headers. Also, ignore deprecated declaration for bootstrap_register2().
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm: Include header GraphicsServicesSPI.h instead of directly
including private headers.
* config.h: Moved EXTERN_C_BEGIN and EXTERN_C_END macros from here to file wtf/Compiler.h and renamed them to WTF_EXTERN_C_BEGIN
and WTF_EXTERN_C_END, respectively, so that we can make use of them in SPI wrapper headers (e.g. UIKitSPI.h).
2015-01-07 Simon Fraser <simon.fraser@apple.com>
Make WebKitAcceleratedDrawingEnabled into a "debug" pref, so that it's read without page group prefixes
https://bugs.webkit.org/show_bug.cgi?id=140221
Reviewed by Sam Weinig.
Applications should not be toggling WebKitAcceleratedDrawingEnabled; it's really only
useful to toggle for debugging, so make it a debug pref.
* Shared/WebPreferencesDefinitions.h:
2015-01-07 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r178068.
https://bugs.webkit.org/show_bug.cgi?id=140235
Breaks the iOS build (Requested by enrica on #webkit).
Reverted changeset:
"[iOS] Make WebKit2 build with public iOS SDK and more build
fixes for DRT"
https://bugs.webkit.org/show_bug.cgi?id=137371
http://trac.webkit.org/changeset/178068
2015-01-07 Daniel Bates <dabates@apple.com>
[iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT
https://bugs.webkit.org/show_bug.cgi?id=137371
Reviewed by David Kilzer.
* Configurations/BaseTarget.xcconfig: Append directory $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks to
the list of directories to search for frameworks so that we the linker can find and link against iOS private
frameworks (e.g. AssertionServices).
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::willCacheResponseAsync): Add PLATFORM(IOS)-guard around call to NetworkDiskCacheMonitor::monitorFileBackingStoreCreation().
* Platform/IPC/mac/ConnectionMac.mm: Add header sys/mman.h.
* Platform/spi/ios/BKSProcessAssertionSPI.h: Added.
* Platform/spi/ios/CorePDFSPI.h: Added.
* Platform/spi/ios/DataDetectorsUISPI.h: Added.
* Platform/spi/ios/ManagedConfigurationSPI.h: Added.
* Platform/spi/ios/TCCSPI.h: Added.
* Platform/spi/ios/TextInputSPI.h: Added.
* Platform/spi/ios/UIKitSPI.h: Added.
* Shared/Downloads/ios/DownloadIOS.mm: Add USE(CFNETWORK)-guard around CFNetwork-specific code and conditionally
include header CFNetwork/CFURLDownload.h.
(WebKit::Download::startWithHandle): Ditto.
* Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm: Include header ServersSPI.h instead
of directly including private headers.
* Shared/ios/NativeWebTouchEventIOS.mm: Include header UIKitSPI.h instead of directly including private headers.
* Shared/mac/SandboxUtilities.cpp: Include header sys/param.h.
* UIProcess/API/Cocoa/WKWebView.mm: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm: Ditto.
* UIProcess/API/Cocoa/WKWebViewInternal.h: Ditto.
* UIProcess/API/ios/WKViewIOS.mm: Ditto.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm: Include header ServersSPI.h instead of directly including private headers.
Also, ignore deprecated declaration for bootstrap_register2().
* UIProcess/ios/PageClientImplIOS.mm: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/ProcessAssertionIOS.mm: Include header BKSProcessAssertionSPI.h instead of directly including private headers.
* UIProcess/ios/SmartMagnificationController.mm: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/ViewGestureControllerIOS.mm: Ditto.
* UIProcess/ios/WKActionSheet.mm: Ditto.
* UIProcess/ios/WKActionSheetAssistant.h: Include header DataDetectorsUISPI.h instead of directly including private headers.
* UIProcess/ios/WKActionSheetAssistant.mm: Include headers TCCSPI.h and UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/WKContentView.mm: Include header UIKitSPI.h instead of directly including private headers. Also, move CALayer SPI
forward declarations to QuartzCoreSPI.h
* UIProcess/ios/WKContentViewInteraction.h: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/WKContentViewInteraction.mm: Ditto. Also, include headers CoreGraphicsSPI.h, CoreText/CTFont.h, DataDetectorsUISPI.h,
ManagedConfigurationSPI.h, TextInputSPI.h.
* UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/WKPDFPageNumberIndicator.mm: Ditto.
* UIProcess/ios/WKPDFView.h: Include header CorePDFSPI.h instead of directly including private headers.
* UIProcess/ios/WKPDFView.mm: Ditto. Also, remove header _UIHighlightViewSPI.h and include UIKitSPI.h.
* UIProcess/ios/WKScrollView.h: Include header UIKitSPI.h instead of directly including private headers.
* UIProcess/ios/WKSyntheticClickTapGestureRecognizer.h: Ditto.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm: Ditto.
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm: Ditto.
* UIProcess/ios/forms/WKFileUploadPanel.mm: Ditto.
* UIProcess/ios/forms/WKFormInputControl.mm: Ditto.
* UIProcess/ios/forms/WKFormPopover.mm: Ditto.
* UIProcess/ios/forms/WKFormSelectControl.h: Ditto.
* UIProcess/ios/forms/WKFormSelectControl.mm: Ditto.
* UIProcess/ios/forms/WKFormSelectPicker.mm: Ditto.
* UIProcess/ios/forms/WKFormSelectPopover.mm: Ditto.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm: Include headers ServersSPI.h and GraphicsServicesSPI.h instead of
directly including private headers.
* WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm: Include header GraphicsServicesSPI.h instead of directly
including private headers.
* config.h: Moved EXTERN_C_BEGIN and EXTERN_C_END macros from here to file wtf/Compiler.h and renamed them to WTF_EXTERN_C_BEGIN
and WTF_EXTERN_C_END, respectively, so that we can make use of them in SPI wrapper headers (e.g. UIKitSPI.h).
2015-01-07 Beth Dakin <bdakin@apple.com>
Adopt delegate callbacks so that standardQuickLookMenuItem does not obscure the
link
https://bugs.webkit.org/show_bug.cgi?id=140206
-and corresponding-
rdar://problem/19300492
Reviewed by Tim Horton.
Providing and item frame will ensure that the original link is not obscured.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController menuItem:itemFrameForPoint:]):
For now use a max size that is smaller than the WKView, with the screen’s aspect
ratio, and scaled down.
(-[WKImmediateActionController menuItem:maxSizeForPoint:]):
2015-01-07 Alexey Proskuryakov <ap@apple.com>
Release build fix.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
2015-01-06 Alexey Proskuryakov <ap@apple.com>
[Mac] Secondary WebKit processes get re-exec'ed twice when running under ASan
https://bugs.webkit.org/show_bug.cgi?id=140175
Reviewed by Sam Weinig.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::addDYLDEnvironmentAdditions):
If the main process is ASanified, add the ASan dynamic library to DYLD_INSERT_LIBRARIES.
This avoids an extra re-exec, which is very annoying when debugging.
The library is linked in using @rpath, so the only reliable way to find its location
is by examining binary images loaded into the current process.
2015-01-07 Zan Dobersek <zdobersek@igalia.com>
[TexMap] m_layer member in GraphicsLayerTextureMapper is always non-null
https://bugs.webkit.org/show_bug.cgi?id=140135
Reviewed by Darin Adler.
GraphicsLayerTextureMapper::layer() now returns a reference,
so the call sites are updated.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize):
(WebKit::LayerTreeHostGtk::layerFlushTimerFired):
(WebKit::LayerTreeHostGtk::compositeLayersToContext):
2015-01-06 Gwang Yoon Hwang <yoon@igalia.com>
Remove the remaining uses of OwnPtr in threaded compositor.
https://bugs.webkit.org/show_bug.cgi?id=140172
Reviewed by Sam Weinig.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::runCompositingThread):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
2015-01-06 Timothy Horton <timothy_horton@apple.com>
View state change callbacks are sometimes dropped on the floor
https://bugs.webkit.org/show_bug.cgi?id=140156
<rdar://problem/19255417>
Reviewed by Anders Carlsson.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchViewStateChange):
Always send SetViewState to the Web process if we have any
registered view state change callbacks. Otherwise, if nothing changed,
we can end up never calling the callback.
2015-01-06 Timothy Horton <timothy_horton@apple.com>
Make explicit which TextIndicator animations are driven manually, and which run automatically
https://bugs.webkit.org/show_bug.cgi?id=140113
<rdar://problem/19383425>
Reviewed by Darin Adler.
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformDictionaryLookup):
Delete an inaccurate comment.
2015-01-06 Anders Carlsson <andersca@apple.com>
Remove now unused IndexedDB code
https://bugs.webkit.org/show_bug.cgi?id=140128
Reviewed by Darin Adler.
Remove a function.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createIDBFactoryBackend): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2015-01-06 Darin Adler <darin@apple.com>
Fix race in FindController code
https://bugs.webkit.org/show_bug.cgi?id=140114
Reviewed by Anders Carlsson.
No idea how to reproduce this. Just ran into the crash in my local testing.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::findString): Use a RefPtr to guarantee the FindController is
not deleted while a this pointer is stored in a function.
2015-01-05 Anders Carlsson <andersca@apple.com>
Add a DatabaseProvider subclass in WebKit2 and use it for IndexedDB
https://bugs.webkit.org/show_bug.cgi?id=140108
Reviewed by Darin Adler.
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Databases/WebDatabaseProvider.cpp: Added.
(WebKit::databaseProviders):
(WebKit::WebDatabaseProvider::getOrCreate):
(WebKit::WebDatabaseProvider::WebDatabaseProvider):
(WebKit::WebDatabaseProvider::~WebDatabaseProvider):
(WebKit::WebDatabaseProvider::createIDBFactoryBackend):
* WebProcess/Databases/WebDatabaseProvider.h: Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
2015-01-05 Matt Baker <mattbaker@apple.com>
Web Inspector: inspector view top inset should not include height of web view banners
https://bugs.webkit.org/show_bug.cgi?id=140076
Reviewed by Anders Carlsson.
Added _totalHeightOfBanners property to WKView, which is used by the WebInspectorProxy
to calculate the correct vertical position of the Inspector view frame. The browser is
responsible for setting the property value whenever banners are installed or uninstalled from
the view.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _setTotalHeightOfBanners:]):
(-[WKView _totalHeightOfBanners]):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
2015-01-05 Timothy Horton <timothy_horton@apple.com>
Implicitly dismissed DD popovers don't clear immediate action state, prematurely dismissing the next DD highlight
https://bugs.webkit.org/show_bug.cgi?id=140088
<rdar://problem/19298391>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _menuItemForDataDetectedText]):
Instead of just tearing down the TextIndicator, clear all state.
2015-01-05 Csaba Osztrogonác <ossy@webkit.org>
One more URTBF after r177917.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* WebProcess/Battery/WebBatteryManager.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::didReceiveCoordinatedLayerTreeHostMessage):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/LayerTreeHost.h:
2015-01-05 Anders Carlsson <andersca@apple.com>
Get rid of PassRefPtr from IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=140092
Reviewed by Andreas Kling.
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::DatabaseToWebProcessConnection):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
* Platform/IPC/Connection.cpp:
(IPC::Connection::createServerConnection):
(IPC::Connection::createClientConnection):
(IPC::Connection::Connection):
* Platform/IPC/Connection.h:
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::WebProcessConnection):
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::initialize):
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::WebToDatabaseProcessConnection):
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::NetworkProcessConnection):
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::PluginProcessConnection):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::createInspectorPage):
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::establishConnection):
2015-01-05 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r177917.
* UIProcess/WebBatteryManagerProxy.h:
* UIProcess/WebVibrationProxy.h:
2015-01-05 Anders Carlsson <andersca@apple.com>
Clean up Connection::SyncMessageState
https://bugs.webkit.org/show_bug.cgi?id=140087
Reviewed by Andreas Kling.
* Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::syncMessageStateMapMutex):
Change this to return an std::mutex and use std::call_once to initialize it properly.
(IPC::Connection::SyncMessageState::getOrCreate):
Return a Ref.
(IPC::Connection::SyncMessageState::~SyncMessageState):
Use an std::lock_guard.
(IPC::Connection::SyncMessageState::processIncomingMessage):
Replace a bind call with a lambda.
(IPC::Connection::SyncMessageState::dispatchMessages):
ConnectionAndIncomingMessage now holds a Ref<Connection>.
(IPC::Connection::SyncMessageState::dispatchMessageAndResetDidScheduleDispatchMessagesForConnection):
Change Connection to a reference.
(IPC::Connection::processIncomingMessage):
Change Connection to a reference.
2015-01-05 Anders Carlsson <andersca@apple.com>
Clean up the storage manager some more
https://bugs.webkit.org/show_bug.cgi?id=140086
Reviewed by Andreas Kling.
Use lambdas instead of WTF::bind and get rid of a couple of internal functions.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processWillCloseConnection):
(WebKit::StorageManager::createSessionStorageNamespaceInternal): Deleted.
(WebKit::StorageManager::destroySessionStorageNamespaceInternal): Deleted.
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnectionInternal): Deleted.
(WebKit::StorageManager::cloneSessionStorageNamespaceInternal): Deleted.
(WebKit::StorageManager::invalidateConnectionInternal): Deleted.
* UIProcess/Storage/StorageManager.h:
2015-01-05 Anders Carlsson <andersca@apple.com>
Change more connection pointers to references
https://bugs.webkit.org/show_bug.cgi?id=140085
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::addListener):
(WebKit::StorageManager::StorageArea::removeListener):
(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
(WebKit::StorageManager::getValues):
(WebKit::StorageManager::setItem):
(WebKit::StorageManager::removeItem):
(WebKit::StorageManager::clear):
(WebKit::StorageManager::applicationWillTerminate):
(WebKit::StorageManager::invalidateConnectionInternal):
(WebKit::StorageManager::findStorageArea):
* UIProcess/Storage/StorageManager.h:
2015-01-05 Anders Carlsson <andersca@apple.com>
Change more of the IPC code to take connections by reference
https://bugs.webkit.org/show_bug.cgi?id=140083
Reviewed by Andreas Kling.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::didReceiveMessage):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didReceiveMessage):
(WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::didReceiveSyncMessage):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoader.h:
* Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchMessage):
* Platform/IPC/Connection.h:
(IPC::Connection::waitForAndDispatchImmediately):
* Platform/IPC/MessageReceiver.h:
(IPC::MessageReceiver::didReceiveSyncMessage):
* Platform/IPC/MessageReceiverMap.cpp:
(IPC::MessageReceiverMap::dispatchMessage):
(IPC::MessageReceiverMap::dispatchSyncMessage):
* Platform/IPC/MessageReceiverMap.h:
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::didReceiveMessage):
* PluginProcess/PluginProcess.h:
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::didReceiveMessage):
(WebKit::WebProcessConnection::didReceiveSyncMessage):
* PluginProcess/WebProcessConnection.h:
* Scripts/webkit/messages.py:
(async_message_statement):
(sync_message_statement):
(generate_message_handler):
* Shared/API/Cocoa/RemoteObjectRegistry.h:
* Shared/Authentication/AuthenticationManager.h:
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::dispatchMessage):
(WebKit::ChildProcessProxy::dispatchSyncMessage):
* Shared/ChildProcessProxy.h:
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
* Shared/Plugins/NPObjectMessageReceiver.h:
* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::didReceiveSyncMessage):
* Shared/Plugins/NPRemoteObjectMap.h:
* Shared/WebConnection.h:
* Shared/mac/SecItemShim.h:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::didReceiveMessage):
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Downloads/DownloadProxy.h:
* UIProcess/DrawingAreaProxy.h:
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveMessage):
(WebKit::NetworkProcessProxy::didReceiveSyncMessage):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Storage/StorageManager.h:
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebApplicationCacheManagerProxy.h:
* UIProcess/WebCookieManagerProxy.h:
* UIProcess/WebDatabaseManagerProxy.h:
* UIProcess/WebFullScreenManagerProxy.h:
* UIProcess/WebGeolocationManagerProxy.h:
* UIProcess/WebIconDatabase.h:
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebMediaCacheManagerProxy.h:
* UIProcess/WebOriginDataManagerProxy.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::dispatchMessage):
(WebKit::WebProcessPool::dispatchSyncMessage):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::didReceiveSyncMessage):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebResourceCacheManagerProxy.h:
* UIProcess/ios/SmartMagnificationController.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/SecItemShimProxy.h:
* UIProcess/mac/ViewGestureController.h:
* WebProcess/ApplicationCache/WebApplicationCacheManager.h:
* WebProcess/Cookies/WebCookieManager.h:
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::didReceiveMessage):
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
* WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didReceiveMessage):
* WebProcess/FullScreen/WebFullScreenManager.h:
* WebProcess/Geolocation/WebGeolocationManager.h:
* WebProcess/IconDatabase/WebIconDatabaseProxy.h:
* WebProcess/MediaCache/WebMediaCacheManager.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didReceiveSyncMessage):
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Notifications/WebNotificationManager.h:
* WebProcess/OriginData/WebOriginDataManager.h:
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::didReceiveMessage):
(WebKit::PluginProcessConnection::didReceiveSyncMessage):
* WebProcess/Plugins/PluginProcessConnection.h:
* WebProcess/Plugins/PluginProcessConnectionManager.h:
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/ResourceCache/WebResourceCacheManager.h:
* WebProcess/Scrolling/RemoteScrollingCoordinator.h:
* WebProcess/Storage/StorageAreaMap.h:
* WebProcess/UserContent/WebUserContentController.h:
* WebProcess/WebCoreSupport/WebDatabaseManager.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:
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPageGroupProxy.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveSyncMessage):
(WebKit::WebProcess::didReceiveMessage):
* WebProcess/WebProcess.h:
* WebProcess/ios/WebVideoFullscreenManager.h:
2015-01-05 Anders Carlsson <andersca@apple.com>
Pass IPC::Connection by reference to IPC message handlers
https://bugs.webkit.org/show_bug.cgi?id=140082
Reviewed by Darin Adler.
* Platform/IPC/HandleMessage.h:
(IPC::callMemberFunctionImpl):
(IPC::callMemberFunction):
(IPC::handleMessage):
(IPC::handleMessageDelayed):
* Scripts/webkit/messages.py:
(async_message_statement):
(sync_message_statement):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
(WebKit::StorageManager::getValues):
(WebKit::StorageManager::setItem):
(WebKit::StorageManager::removeItem):
(WebKit::StorageManager::clear):
* UIProcess/Storage/StorageManager.h:
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::didPostMessage):
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::startUpdating):
(WebKit::WebGeolocationManagerProxy::stopUpdating):
(WebKit::WebGeolocationManagerProxy::setEnableHighAccuracy):
* UIProcess/WebGeolocationManagerProxy.h:
* UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::WebOriginDataManagerProxy::didGetOrigins):
(WebKit::WebOriginDataManagerProxy::didDeleteEntries):
(WebKit::WebOriginDataManagerProxy::didDeleteAllEntries):
* UIProcess/WebOriginDataManagerProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::handleMessage):
(WebKit::WebProcessPool::handleSynchronousMessage):
* UIProcess/WebProcessPool.h:
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::secItemRequest):
* UIProcess/mac/SecItemShimProxy.h:
2015-01-04 Anders Carlsson <andersca@apple.com>
Clean up some of the IPC code
https://bugs.webkit.org/show_bug.cgi?id=140057
Reviewed by Antti Koivisto.
Use std::mutex instead of WTF::Mutex. Change a couple of pointers to references in the connection client.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::didClose):
(WebKit::DatabaseProcess::didReceiveInvalidMessage):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didClose):
(WebKit::DatabaseToWebProcessConnection::didReceiveInvalidMessage):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::didReceiveInvalidMessage):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::didReceiveInvalidMessage):
* NetworkProcess/NetworkProcess.h:
* Platform/IPC/Connection.cpp:
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::dispatchMessage):
(IPC::Connection::dispatchOneMessage):
* Platform/IPC/Connection.h:
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::didClose):
(WebKit::PluginProcess::didReceiveInvalidMessage):
* PluginProcess/PluginProcess.h:
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::didClose):
(WebKit::WebProcessConnection::didReceiveInvalidMessage):
* PluginProcess/WebProcessConnection.h:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::didClose):
(WebKit::DatabaseProcessProxy::didReceiveInvalidMessage):
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::didReceiveInvalidMessage):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didClose):
(WebKit::PluginProcessProxy::didReceiveInvalidMessage):
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::didReceiveInvalidMessage):
* UIProcess/WebProcessProxy.h:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::didClose):
(WebKit::WebToDatabaseProcessConnection::didReceiveInvalidMessage):
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::didReceiveInvalidMessage):
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::didClose):
(WebKit::PluginProcessConnection::didReceiveInvalidMessage):
* WebProcess/Plugins/PluginProcessConnection.h:
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didClose):
(WebKit::WebProcess::didReceiveInvalidMessage):
* WebProcess/WebProcess.h:
2015-01-01 Sam Weinig <sam@webkit.org>
Remove GroupSettings
https://bugs.webkit.org/show_bug.cgi?id=140037
Reviewed by Dan Bernstein.
Remove unused databaseDirectoryIdentifier parameters.
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::WebIDBFactoryBackend):
(WebKit::WebIDBFactoryBackend::getDatabaseNames):
(WebKit::WebIDBFactoryBackend::deleteDatabase):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
* WebProcess/Storage/StorageNamespaceImpl.cpp:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createIDBFactoryBackend):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2015-01-01 Jeff Miller <jeffm@apple.com>
Update user-visible copyright strings to include 2015
https://bugs.webkit.org/show_bug.cgi?id=139880
Reviewed by Darin Adler.
* DatabaseProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist:
* DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist:
* Info.plist:
* NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info-OSX.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info-iOS.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-iOS.plist:
* PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
* WebProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-OSX.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-iOS.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
* mac/Info-WebKit2.plist:
2014-12-31 Sam Weinig <sam@webkit.org>
Move scrolling code off of WTF::bind
https://bugs.webkit.org/show_bug.cgi?id=140019
Reviewed by Darin Adler.
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::touchEvent):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
2015-01-01 Darin Adler <darin@apple.com>
We often misspell identifier as "identifer"
https://bugs.webkit.org/show_bug.cgi?id=140025
Reviewed by Michael Saboff.
* Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::encode):
(WebKit::WebPageGroupData::decode):
* Shared/WebPageGroupData.h:
* UIProcess/WebPageGroup.cpp:
(WebKit::pageGroupData):
(WebKit::WebPageGroup::WebPageGroup):
* UIProcess/WebPageGroup.h:
(WebKit::WebPageGroup::identifier):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::createInspectorPage):
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
* WebProcess/WebPage/WebPageGroupProxy.h:
(WebKit::WebPageGroupProxy::identifier):
Fix misspellings.
2014-12-31 Yusuke Suzuki <utatane.tea@gmail.com>
[GTK] Suppress unused parameter warnings in ui clients
https://bugs.webkit.org/show_bug.cgi?id=140012
Drop the parameter name of WebKitUIClient::isPlayingAudioDidChange
to suppress warnings.
Reviewed by Benjamin Poulain.
* UIProcess/API/gtk/WebKitUIClient.cpp:
2014-12-31 Sam Weinig <sam@webkit.org>
Remove the remaining uses of OwnPtr from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=140017
Reviewed by Dan Bernstein.
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::RemoteScrollingCoordinatorTransaction::decode):
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h:
(WebKit::RemoteScrollingCoordinatorTransaction::setStateTreeToEncode):
(WebKit::RemoteScrollingCoordinatorTransaction::scrollingStateTree):
* UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::PageClientImpl):
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(-[WKPrintingView _askPageToComputePageRects]):
(-[WKPrintingView _drawPreview:]):
* WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:
2014-12-31 Bartlomiej Gajda <b.gajda@samsung.com>
Fix build warnings after r177792.
https://bugs.webkit.org/show_bug.cgi?id=140005.
Reviewed by Anders Carlsson.
Add UNUSED_PARAM(connection) for async messages.
* Scripts/webkit/messages.py:
(generate_message_handler):
2014-12-31 Zan Dobersek <zdobersek@igalia.com>
Unreviewed build fix for the GTK port.
Move the ArgumentCodersGtk.h inclusion from WebPageProxy.cpp to
WebPageProxy.h. This makes GTK-specific IPC coders available to
WebPageProxyMessageReceiver, fixing a build error due to missing
ArgumentCoder template specializations for WebCore::DragData type
that is used in the GTK-specific StartDrag message.
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
2014-12-31 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r177824 and r177826.
https://bugs.webkit.org/show_bug.cgi?id=140011
The new test crashes (Requested by ap on #webkit).
Reverted changesets:
"Too large plugins are crashing."
https://bugs.webkit.org/show_bug.cgi?id=139856
http://trac.webkit.org/changeset/177824
"Fix bug number typo in the previous commit."
http://trac.webkit.org/changeset/177826
2014-12-30 Gabor Rapcsanyi <rgabor@webkit.org>
Too large plugins are crashing.
https://bugs.webkit.org/show_bug.cgi?id=139868
Reviewed by Darin Adler.
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::updateBackingStore): Return false if backingStore cannot be allocated.
2014-12-30 Anders Carlsson <andersca@apple.com>
Transient local storage namespaces need to ref their storage areas
https://bugs.webkit.org/show_bug.cgi?id=140006
<rdar://problem/19225389>
Reviewed by Sam Weinig.
We need to keep transient storage areas around even if they have no active connections,
so use a RefPtr instead of a raw pointer. This matches what we do for session storage namespaces.
* UIProcess/Storage/StorageManager.cpp:
2014-12-29 Anders Carlsson <andersca@apple.com>
Remove unneeded StorageNamespace functions
https://bugs.webkit.org/show_bug.cgi?id=139997
Reviewed by Sam Weinig.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::close): Deleted.
(WebKit::StorageNamespaceImpl::clearOriginForDeletion): Deleted.
(WebKit::StorageNamespaceImpl::clearAllOriginsForDeletion): Deleted.
(WebKit::StorageNamespaceImpl::sync): Deleted.
(WebKit::StorageNamespaceImpl::closeIdleLocalStorageDatabases): Deleted.
* WebProcess/Storage/StorageNamespaceImpl.h:
2014-12-29 Anders Carlsson <andersca@apple.com>
Move storage code from WebCore to WebKit
https://bugs.webkit.org/show_bug.cgi?id=139558
Reviewed by Darin Adler.
* WebProcess/WebProcess.cpp:
2014-12-29 Dan Bernstein <mitz@apple.com>
Fixed the iOS build.
* WebProcess/WebPage/ios/WebPageIOS.mm:
2014-12-29 Anders Carlsson <andersca@apple.com>
Another iOS build fix.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::elementDidFocus):
2014-12-29 Anders Carlsson <andersca@apple.com>
Turn on transient local storage support again
https://bugs.webkit.org/show_bug.cgi?id=139995
Reviewed by Sam Weinig.
Using transient local storage caused weird crashes in the UI process so that change had to
be backed out - let's turn it on and see if it still happens.
* WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
2014-12-29 Anders Carlsson <andersca@apple.com>
Remove more old coder code gunk.
Rubber-stamped by Sam Weinig.
* Scripts/webkit/messages.py:
(argument_coder_headers_for_type):
(handler_function): Deleted.
2014-12-29 Anders Carlsson <andersca@apple.com>
Try to fix the iOS build.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startAssistingNode):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::elementDidFocus):
2014-12-29 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r177805.
* CMakeLists.txt:
2014-12-29 Anders Carlsson <andersca@apple.com>
Remove the old user message coder code
https://bugs.webkit.org/show_bug.cgi?id=139994
Reviewed by Sam Weinig.
* Platform/IPC/HandleMessage.h:
(IPC::callMemberFunctionImpl): Deleted.
(IPC::callMemberFunction): Deleted.
(IPC::handleMessageVariadic): Deleted.
* Scripts/webkit/messages.py:
(decode_type):
(async_message_statement):
(sync_message_statement):
* Shared/UserMessageCoders.h: Removed.
* Shared/mac/ObjCObjectGraphCoders.h: Removed.
* Shared/mac/ObjCObjectGraphCoders.mm: Removed.
* UIProcess/WebConnectionToWebProcess.cpp:
* UIProcess/WebContextUserMessageCoders.h: Removed.
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebProcessPool.cpp:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h: Removed.
* WebProcess/WebConnectionToUIProcess.cpp:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebPage/WebContextMenu.cpp:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/WebProcess.cpp:
2014-12-29 Sam Weinig <sam@webkit.org>
Move WebPasteboardProxy from Shared to UIProcess, where it should have been all along
Rubber-stamped by Anders Carlsson.
* Shared/WebPasteboardProxy.cpp: Removed.
* Shared/WebPasteboardProxy.h: Removed.
* Shared/WebPasteboardProxy.messages.in: Removed.
* UIProcess/WebPasteboardProxy.cpp: Copied from Shared/WebPasteboardProxy.cpp.
* UIProcess/WebPasteboardProxy.h: Copied from Shared/WebPasteboardProxy.h.
* UIProcess/WebPasteboardProxy.messages.in: Copied from Shared/WebPasteboardProxy.messages.in.
* WebKit2.xcodeproj/project.pbxproj:
2014-12-29 Sam Weinig <sam@webkit.org>
Try to fix the iOS build.
* Shared/WebPasteboardProxy.h:
2014-12-29 Anders Carlsson <andersca@apple.com>
Convert injected bundle message posting to UserData
https://bugs.webkit.org/show_bug.cgi?id=139993
Reviewed by Sam Weinig.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::postMessageToInjectedBundle):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::handleInjectedBundleMessage):
(WebKit::WebProcess::postInjectedBundleMessage): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2014-12-29 Sam Weinig <sam@webkit.org>
Try to fix the iOS build.
* Shared/WebPasteboardProxy.h:
2014-12-29 Csaba Osztrogonác <ossy@webkit.org>
One more speculative buildfix after r177794.
* CMakeLists.txt:
2014-12-29 Sam Weinig <sam@webkit.org>
Try to fix the iOS build.
* Shared/WebPasteboardProxy.h:
2014-12-29 Csaba Osztrogonác <ossy@webkit.org>
Speculative buildfix after r177793.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-12-29 Csaba Osztrogonác <ossy@webkit.org>
Speculative buildfix after r177794.
* CMakeLists.txt:
2014-12-29 Sam Weinig <sam@webkit.org>
Removes some unnecessary use of LegacyReceiver
https://bugs.webkit.org/show_bug.cgi?id=139992
Reviewed by Anders Carlsson.
* Shared/WebConnection.cpp:
(WebKit::WebConnection::didReceiveMessage): Deleted.
* Shared/WebConnection.h:
* Shared/WebConnection.messages.in:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::didReceiveMessage): Deleted.
(WebKit::WebProcessPool::didReceiveSyncMessage): Deleted.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.messages.in:
Remove unnecessary use of LegacyReceiver.
* UIProcess/WebPageProxy.h:
Remove declarations for functions that don't exist.
2014-12-29 Anders Carlsson <andersca@apple.com>
Convert all variadic web process messages to UserData
https://bugs.webkit.org/show_bug.cgi?id=139991
Reviewed by Sam Weinig.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString):
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::postMessageToInjectedBundle):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):
(WebKit::WebPage::loadString):
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadHTMLString):
(WebKit::WebPage::loadAlternateHTMLString):
(WebKit::WebPage::loadPlainTextString):
(WebKit::WebPage::loadWebArchiveData):
(WebKit::WebPage::postInjectedBundleMessage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2014-12-29 Anders Carlsson <andersca@apple.com>
Convert all variadic WebProcessProxy message over to UserData
https://bugs.webkit.org/show_bug.cgi?id=139990
Reviewed by Sam Weinig.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::didReceiveTitleForFrame):
(WebKit::WebPageProxy::didFirstLayoutForFrame):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
(WebKit::WebPageProxy::didLayout):
(WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
(WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
(WebKit::WebPageProxy::didRunInsecureContentForFrame):
(WebKit::WebPageProxy::didDetectXSSForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseSync):
(WebKit::WebPageProxy::unableToImplementPolicy):
(WebKit::WebPageProxy::willSubmitForm):
(WebKit::WebPageProxy::mouseDidMoveOverElement):
(WebKit::WebPageProxy::didBeginTrackingPotentialLongMousePress):
(WebKit::WebPageProxy::didRecognizeLongMousePress):
(WebKit::WebPageProxy::didCancelTrackingPotentialLongMousePress):
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::internalShowContextMenu):
(WebKit::WebPageProxy::didPerformActionMenuHitTest):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showSelectionServiceMenu):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::mouseDidMoveOverElement):
(WebKit::WebChromeClient::didBeginTrackingPotentialLongMousePress):
(WebKit::WebChromeClient::didRecognizeLongMousePress):
(WebKit::WebChromeClient::didCancelTrackingPotentialLongMousePress):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::dispatchUnableToImplementPolicy):
(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
(WebKit::WebFrameLoaderClient::shouldGoToHistoryItem):
(WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
(WebKit::WebFrameLoaderClient::didRunInsecureContent):
(WebKit::WebFrameLoaderClient::didDetectXSS):
* WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::show):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
2014-12-29 Sam Weinig <sam@webkit.org>
Move Pasteboard code out of WebProcessPool and into its own singleton class
https://bugs.webkit.org/show_bug.cgi?id=139987
Reviewed by Anders Carlsson.
* DerivedSources.make:
* Shared/WebPasteboardProxy.cpp: Added.
(WebKit::WebPasteboardProxy::shared):
(WebKit::WebPasteboardProxy::WebPasteboardProxy):
(WebKit::WebPasteboardProxy::addWebProcessProxy):
* Shared/WebPasteboardProxy.h: Added.
* Shared/WebPasteboardProxy.messages.in: Added.
* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: Added.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::didReceiveSyncMessage):
(WebKit::WebProcessPool::dummy): Deleted.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.messages.in:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::writeItemsToPasteboard):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
2014-12-29 Anders Carlsson <andersca@apple.com>
Use UserData for bundle initialization data
https://bugs.webkit.org/show_bug.cgi?id=139989
Reviewed by Sam Weinig.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::~WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-12-28 Anders Carlsson <andersca@apple.com>
Use UserData when sending messages to the process pool
https://bugs.webkit.org/show_bug.cgi?id=139978
Reviewed by Sam Weinig.
* Scripts/webkit/messages.py:
(generate_message_handler):
Include the connection parameter for legacy receivers as well.
* Shared/CoreIPCSupport/WebContextMessageKinds.h:
Remove this, it's no longer needed.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::didReceiveMessage):
No need to special case the postMessage message.
(WebKit::WebProcessPool::didReceiveSyncMessage):
No need to special case the postSynchronousMessageMessage message.
(WebKit::WebProcessPool::handleMessage):
Convert handles to objects and call didReceiveMessageFromInjectedBundle.
(WebKit::WebProcessPool::handleSynchronousMessage):
Convert handles to objects, call didReceiveSynchronousMessageFromInjectedBundle, and then
convert objects back to handles in the reply.
(WebKit::WebProcessPool::didReceiveMessageFromInjectedBundle): Deleted.
(WebKit::WebProcessPool::didReceiveSynchronousMessageFromInjectedBundle): Deleted.
(WebKit::WebProcessPool::dummy): Deleted.
* UIProcess/WebProcessPool.h:
Add handleMessage and handleSynchronousMessage message handlers.
* UIProcess/WebProcessPool.messages.in:
Add new messages.
* WebKit2.xcodeproj/project.pbxproj:
Remove a now unused file.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::postMessage):
Convert objects to handles in the message body and then send the HandleMessage to the UI process.
(WebKit::InjectedBundle::postSynchronousMessage):
Convert objects to handles in the message body, send the HandleSynchronousMessage message to the UI process,
and then convert handles back to objects in the reply.
2014-12-28 Anders Carlsson <andersca@apple.com>
Transform nested objects inside arrays
https://bugs.webkit.org/show_bug.cgi?id=139976
Reviewed by Oliver Hunt.
Call transformGraph on each element so that we'll transform other nested objects correctly.
* Shared/UserData.cpp:
(WebKit::transformGraph):
2014-12-27 Dan Bernstein <mitz@apple.com>
iOS build fix after r177765.
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::ObjCObjectGraph::encode):
2014-12-27 Anders Carlsson <andersca@apple.com>
Switch WebConnection over to sending objects with UserData
https://bugs.webkit.org/show_bug.cgi?id=139967
Reviewed by Oliver Hunt.
* Shared/WebConnection.cpp:
(WebKit::WebConnection::postMessage):
No need to construct the message manually anymore.
(WebKit::WebConnection::handleMessage):
No need to decode the message manually, just get the object from the UserData message body,
convert any handles to objects, and dispatch the message.
* Shared/WebConnection.h:
Remove now unused members.
* Shared/WebConnection.messages.in:
Give HandleMessage a proper signature.
* UIProcess/WebConnectionToWebProcess.cpp:
(WebKit::WebConnectionToWebProcess::transformHandlesToObjects):
(WebKit::WebConnectionToWebProcess::transformObjectsToHandles):
Call the WebProcessProxy version.
(WebKit::WebConnectionToWebProcess::encodeMessageBody): Deleted.
(WebKit::WebConnectionToWebProcess::decodeMessageBody): Deleted.
* UIProcess/WebConnectionToWebProcess.h:
* WebProcess/WebConnectionToUIProcess.cpp:
(WebKit::WebConnectionToUIProcess::encodeMessageBody): Deleted.
(WebKit::WebConnectionToUIProcess::decodeMessageBody): Deleted.
* WebProcess/WebConnectionToUIProcess.h:
Delete more unused members.
2014-12-27 Anders Carlsson <andersca@apple.com>
Encode and decode WKTypeRefWrapper objects
https://bugs.webkit.org/show_bug.cgi?id=139966
Reviewed by Oliver Hunt.
* Shared/UserData.cpp:
(WebKit::UserData::encode):
* Shared/UserData.h:
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::typeFromObject):
(WebKit::ObjCObjectGraph::encode):
(WebKit::ObjCObjectGraph::decode):
2014-12-27 Anders Carlsson <andersca@apple.com>
Implement encoding and decoding of ObjCObjectGraph objects
https://bugs.webkit.org/show_bug.cgi?id=139965
Reviewed by Oliver Hunt.
* Shared/UserData.cpp:
(WebKit::UserData::encode):
(WebKit::UserData::decode):
* Shared/mac/ObjCObjectGraph.h:
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::typeFromObject):
(WebKit::ObjCObjectGraph::encode):
(WebKit::ObjCObjectGraph::decode):
2014-12-27 Dan Bernstein <mitz@apple.com>
[Cocoa] WKWebProcessPlugInLoadDelegate uses the deprecated WKRenderingProgressEvents enum
https://bugs.webkit.org/show_bug.cgi?id=139964
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WKRenderingProgressEventsInternal.h: Removed.
* Shared/API/Cocoa/_WKRenderingProgressEvents.h: Added. Moved the enum definition from
WKWebViewPrivate.h to here.
* Shared/API/Cocoa/_WKRenderingProgressEventsInternal.h: Added.
(renderingProgressEvents): Moved from NavigationState.mm to here.
* UIProcess/API/Cocoa/WKBrowsingContextController.h: Removed observedRenderingProgressEvents
property declaration.
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(layoutMilestones): Deleted.
(-[WKBrowsingContextController setObservedRenderingProgressEvents:]): Deleted. This is not
needed for binary compatibility.
(didLayout): Deleted.
(setUpPageLoaderClient): Removed setting up didLayout callback.
* UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h: Removed unused delegate method.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: Import definition of _WKRenderingProgressEvents
from new header.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::renderingProgressEvents): Moved into its own header.
* WebKit2.xcodeproj/project.pbxproj: Updated for file additions and removeals, and moved
WKRenderingProgressEvents.h into a new Deprecated group.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: Changed the type of
a delegate method parameter to _WKRenderingProgressEvents.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(didLayout): Pass the new type.
2014-12-26 Conrad Shultz <conrad_shultz@apple.com>
Safari build crashes when "zooming into"/choosing a tab from tab view
https://bugs.webkit.org/show_bug.cgi?id=139934
Reviewed by Dan Bernstein.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setIgnoresNonWheelEvents:]):
Trying to add a nil gesture recognizer raises an exception. Stop assuming that a
gesture recognizer is non-nil.
2014-12-26 Anders Carlsson <andersca@apple.com>
Handle more types in the UserData encode/decode functions
https://bugs.webkit.org/show_bug.cgi?id=139959
Reviewed by Dan Bernstein.
* Shared/UserData.cpp:
(WebKit::UserData::encode):
(WebKit::UserData::decode):
2014-12-26 Anders Carlsson <andersca@apple.com>
Move handle encoding functions to their respective implementation files
https://bugs.webkit.org/show_bug.cgi?id=139957
Reviewed by Dan Bernstein.
* Shared/API/APIFrameHandle.cpp:
(API::FrameHandle::encode):
(API::FrameHandle::decode):
* Shared/API/APIFrameHandle.h:
* Shared/API/APIPageGroupHandle.cpp:
(API::PageGroupHandle::PageGroupHandle):
(API::PageGroupHandle::encode):
(API::PageGroupHandle::decode):
* Shared/API/APIPageGroupHandle.h:
* Shared/API/APIPageHandle.cpp:
(API::PageHandle::encode):
(API::PageHandle::decode):
* Shared/API/APIPageHandle.h:
* Shared/UserData.cpp:
(WebKit::UserData::encode):
(WebKit::UserData::decode):
2014-12-26 Anders Carlsson <andersca@apple.com>
Add the notion of auto-converting page and frame handles
https://bugs.webkit.org/show_bug.cgi?id=139954
Reviewed by Dan Bernstein.
This makes it possible to tell the difference between page and frame handles that
should be converted to their respective UI or web process object representations
and handles that should stay the same (for the modern API for example).
* Shared/API/APIFrameHandle.cpp:
(API::FrameHandle::create):
(API::FrameHandle::createAutoconverting):
(API::FrameHandle::FrameHandle):
* Shared/API/APIFrameHandle.h:
(API::FrameHandle::isAutoconverting):
* Shared/API/APIPageHandle.cpp:
(API::PageHandle::create):
(API::PageHandle::createAutoconverting):
(API::PageHandle::PageHandle):
* Shared/API/APIPageHandle.h:
(API::PageHandle::isAutoconverting):
* Shared/API/Cocoa/_WKFrameHandle.mm:
(-[_WKFrameHandle initWithCoder:]):
* Shared/UserData.cpp:
(WebKit::shouldTransform):
* Shared/UserData.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::printFrame):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame handle]):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
2014-12-26 Dan Bernstein <mitz@apple.com>
[Cocoa] Some modern SPI changes have missing or incorrect availability annotations
https://bugs.webkit.org/show_bug.cgi?id=139940
Reviewed by Darin Adler.
* Shared/API/c/WKDeclarationSpecifiers.h: Renamed WK_DEPRECATED to WK_C_DEPRECATED.
* Shared/API/Cocoa/WKFoundation.h: Define WK_DEPRECATED when API availability is not enabled
to mean that the declaration is currently deprecated.
* Shared/API/c/WKConnectionRef.h: Updated for the renaming of the existing WK_DEPRECATED to
WK_C_DEPRECATED.
* UIProcess/API/C/WKContext.h: Ditto.
* UIProcess/API/C/WKContextConnectionClient.h: Ditto.
* UIProcess/API/C/WKContextDownloadClient.h: Ditto.
* UIProcess/API/C/WKContextHistoryClient.h: Ditto.
* UIProcess/API/C/WKContextInjectedBundleClient.h: Ditto.
* UIProcess/API/C/WKCookieManager.h: Ditto.
* UIProcess/API/C/WKDatabaseManager.h: Ditto.
* UIProcess/API/C/WKGeolocationManager.h: Ditto.
* UIProcess/API/C/WKIconDatabase.h: Ditto.
* UIProcess/API/C/WKNotificationProvider.h: Ditto.
* UIProcess/API/C/WKPageContextMenuClient.h: Ditto.
* UIProcess/API/C/WKPageFindClient.h: Ditto.
* UIProcess/API/C/WKPageFindMatchesClient.h: Ditto.
* UIProcess/API/C/WKPageFormClient.h: Ditto.
* UIProcess/API/C/WKPageUIClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundle.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageBanner.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePagePolicyClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageResourceLoadClient.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h: Ditto.
* Shared/API/Cocoa/WKRenderingProgressEvents.h: Added missing availability annotation.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Changed to use WK_MAC_TBA and WK_IOS_TBA for
_WKDebugOverlayRegions enum. Added availability annotations to new properties.
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Added availability annotation to new method.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Annotated new method, changed Mac
availability of iOS-only method to NA.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: Added availability annotation to new enum value,
new property, and new method. Added deprecation annotation to one method.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h: Annotated new method.
* mac/rewrite-availability-macros.sh: Rewrite WK_DEPRECATED to NS_DEPRECATED.
2014-12-26 Dan Bernstein <mitz@apple.com>
<rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain
https://bugs.webkit.org/show_bug.cgi?id=139950
Reviewed by David Kilzer.
* Configurations/Base.xcconfig: Only define TOOLCHAINS when building for OS X, doing so
in a manner that works with Xcode 5.1.1.
2014-12-25 Hunseop Jeong <hs85.jeong@samsung.com>
Fix build warning after r177700
https://bugs.webkit.org/show_bug.cgi?id=139948
Reviewed by Alexey Proskuryakov.
* UIProcess/WebConnectionToWebProcess.cpp:
(WebKit::WebConnectionToWebProcess::transformHandlesToObjects):
(WebKit::WebConnectionToWebProcess::transformObjectsToHandles):
2014-12-25 Chris Dumez <cdumez@apple.com>
[iOS] Log better using FeatureCounter why PageCache is failing due to pruned resources
https://bugs.webkit.org/show_bug.cgi?id=139921
Reviewed by Gavin Barraclough and Alexey Proskuryakov.
Call PageCache::pruneToCapacityNow() instead of multiple calls to
setCapacity() as it does exactly what we want. Also pass the new
PrunedReason argument so help us do better logging.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::releasePageCache):
2014-12-25 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r177712 and r177717.
https://bugs.webkit.org/show_bug.cgi?id=139944
Caused flaky assertion failures (Requested by ap on #webkit).
Reverted changesets:
"[iOS] Log better using FeatureCounter why PageCache is
failing due to pruned resources"
https://bugs.webkit.org/show_bug.cgi?id=139921
http://trac.webkit.org/changeset/177712
"Unreviewed, fix build warning after r177712"
http://trac.webkit.org/changeset/177717
2014-12-24 Dan Bernstein <mitz@apple.com>
[Cocoa] WebKit private headers shouldn’t contain “inappropriate” macros
https://bugs.webkit.org/show_bug.cgi?id=139942
Reviewed by Darin Adler.
* WebKit2.xcodeproj/project.pbxproj: In the Check For Inappropriate Macros in External
Headers script build phase, check the PrivateHeaders directory as well.
2014-12-24 Dan Bernstein <mitz@apple.com>
Addressed a linker warning about the definition of a method in a category overridng a method from the class.
* UIProcess/API/mac/WKView.mm:
(-[WKView(Private) _targetWindowForMovePreparation]): Deleted. This was identical to the
definition in the main WKView implementation above.
2014-12-23 ChangSeok Oh <changseok.oh@collabora.com>
[GTK] Build fix after r177692
https://bugs.webkit.org/show_bug.cgi?id=139919
Reviewed by Gyuyoung Kim.
This change addresses build failures introduced after r177692.
* PlatformEfl.cmake: Renamed WebContextSoup to WebProcessPoolSoup.cpp
* PlatformGTK.cmake: ditto.
* UIProcess/API/gtk/PageClientImpl.cpp:
* UIProcess/API/gtk/WebKitDownloadClient.cpp:
* UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp:
(webkitFormSubmissionRequestCreate):
(webkit_form_submission_request_get_text_fields):
* UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h:
* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
(didReceiveWebViewMessageFromInjectedBundle):
(didReceiveMessageFromInjectedBundle):
* UIProcess/API/gtk/WebKitSecurityManager.cpp:
(registerSecurityPolicyForURIScheme):
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
(webkit_web_context_prefetch_dns):
(webkitWebContextGetContext):
* UIProcess/API/gtk/WebKitWebContextPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_snapshot):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCreate):
(webkitWebViewBaseCreateWebPage):
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/API/gtk/WebKitWindowProperties.cpp:
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/gtk/WebProcessPoolGtk.cpp: Renamed from Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp.
(WebKit::initInspectorServer):
(WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInvalidateContext):
(WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::platformDefaultIconDatabasePath):
(WebKit::WebProcessPool::platformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory):
(WebKit::WebProcessPool::platformDefaultCookieStorageDirectory):
(WebKit::WebProcessPool::setIgnoreTLSErrors):
* UIProcess/soup/WebProcessPoolSoup.cpp: Renamed from Source/WebKit2/UIProcess/soup/WebContextSoup.cpp.
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:
(webkitWebExtensionDidReceiveMessage):
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(didInitiateLoadForResource):
(willSendRequestForFrame):
(didReceiveResponseForResource):
(didReceiveContentLengthForResource):
(didFinishLoadForResource):
(didFailLoadForResource):
(webkitWebPageDidReceiveMessage):
* WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h:
2014-12-23 Dan Bernstein <mitz@apple.com>
iOS build fix
* UIProcess/API/Cocoa/WKProcessGroup.mm:
(-[WKProcessGroup _geolocationProvider]):
2014-12-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][WK2] Fix a lot of build break since r177692
https://bugs.webkit.org/show_bug.cgi?id=139932
Unreviewed EFL build fix.
Rename WebContext with WebProcessPool in EFL port files.
* CMakeLists.txt:
* UIProcess/API/efl/EwkView.cpp:
* UIProcess/API/efl/ewk_context.cpp:
* UIProcess/API/efl/tests/test_ewk2_context.cpp:
(TEST_F):
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::WebView):
* UIProcess/CoordinatedGraphics/WebView.h:
* UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:
(WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy):
(WebKit::CustomProtocolManagerProxy::startLoading):
(WebKit::CustomProtocolManagerProxy::stopLoading):
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:
(WebKit::WebSoupCustomProtocolRequestManager::create):
(WebKit::WebSoupCustomProtocolRequestManager::WebSoupCustomProtocolRequestManager):
(WebKit::WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol):
(WebKit::WebSoupCustomProtocolRequestManager::unregisterSchemeForCustomProtocol):
(WebKit::WebSoupCustomProtocolRequestManager::didReceiveResponse):
(WebKit::WebSoupCustomProtocolRequestManager::didLoadData):
(WebKit::WebSoupCustomProtocolRequestManager::didFailWithError):
(WebKit::WebSoupCustomProtocolRequestManager::didFinishLoading):
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h:
* UIProcess/WebBatteryManagerProxy.cpp:
(WebKit::WebBatteryManagerProxy::create):
(WebKit::WebBatteryManagerProxy::WebBatteryManagerProxy):
(WebKit::WebBatteryManagerProxy::providerDidChangeBatteryStatus):
(WebKit::WebBatteryManagerProxy::providerUpdateBatteryStatus):
* UIProcess/WebBatteryManagerProxy.h:
* UIProcess/WebTextChecker.cpp:
(WebKit::updateStateForAllContexts):
* UIProcess/WebVibrationProxy.cpp:
(WebKit::WebVibrationProxy::WebVibrationProxy):
(WebKit::WebVibrationProxy::~WebVibrationProxy):
* UIProcess/efl/RequestManagerClientEfl.h:
* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInvalidateContext):
(WebKit::WebProcessPool::platformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::platformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::platformDefaultIconDatabasePath):
(WebKit::WebProcessPool::platformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::platformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory):
(WebKit::WebProcessPool::platformDefaultCookieStorageDirectory):
(WebKit::WebProcessPool::setIgnoreTLSErrors):
(WebKit::WebContext::platformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebContext::platformInitializeWebProcess): Deleted.
(WebKit::WebContext::platformInvalidateContext): Deleted.
(WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebContext::platformDefaultIconDatabasePath): Deleted.
(WebKit::WebContext::platformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebContext::platformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebContext::platformDefaultDiskCacheDirectory): Deleted.
(WebKit::WebContext::platformDefaultCookieStorageDirectory): Deleted.
(WebKit::WebContext::setIgnoreTLSErrors): Deleted.
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
* UIProcess/efl/WebViewEfl.cpp:
(WebKit::WebView::create):
(WebKit::WebViewEfl::WebViewEfl):
* UIProcess/efl/WebViewEfl.h:
* UIProcess/soup/WebContextSoup.cpp:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebContext::platformInitializeNetworkProcess): Deleted.
* UIProcess/soup/WebCookieManagerProxySoup.cpp:
(WebKit::WebCookieManagerProxy::setCookiePersistentStorage):
* UIProcess/soup/WebSoupRequestManagerProxy.h:
2014-12-23 Sam Weinig <sam@webkit.org>
Remove telephone number context support from ContextMenuContextData, it is unused
https://bugs.webkit.org/show_bug.cgi?id=139931
Reviewed by Alexey Proskuryakov.
m_isTelephoneNumberContext was only ever set to true in the ContextMenuContextData
constructor that took a TelephoneNumberContextTag, which never got called. Remove it
all.
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
* Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::isTelephoneNumberContext): Deleted.
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenu):
2014-12-23 Sam Weinig <sam@webkit.org>
Attempt to fix the Mountain Lion build.
* Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::isTelephoneNumberContext):
2014-12-23 Anders Carlsson <andersca@apple.com>
Handle WKTypeRefWrapper when converting object graphs
https://bugs.webkit.org/show_bug.cgi?id=139927
Reviewed by Tim Horton.
* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
2014-12-23 Chris Dumez <cdumez@apple.com>
[iOS] Log better using FeatureCounter why PageCache is failing due to pruned resources
https://bugs.webkit.org/show_bug.cgi?id=139921
<rdar://problem/19255690>
Reviewed by Gavin Barraclough.
Call PageCache::pruneToCapacityNow() instead of multiple calls to
setCapacity() as it does exactly what we want. Also pass the new
PrunedReason argument so help us do better logging.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::releasePageCache):
2014-12-23 Sam Weinig <sam@webkit.org>
Attempt to fix the iOS build.
* UIProcess/API/Cocoa/WKProcessGroup.mm:
(-[WKProcessGroup _geolocationProvider]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
2014-12-23 Anders Carlsson <andersca@apple.com>
Handle coding object graphs in the UI process
https://bugs.webkit.org/show_bug.cgi?id=139925
Reviewed by Sam Weinig.
* UIProcess/Cocoa/WebProcessProxyCocoa.mm: Added.
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
* UIProcess/WebProcessProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::transformObjectsToHandles):
* WebProcess/WebProcess.h:
2014-12-23 Sam Weinig <sam@webkit.org>
ContextMenuContextData should store a ShareableBitmap not a ShareableBitmap::Handle
https://bugs.webkit.org/show_bug.cgi?id=139924
Reviewed by Anders Carlsson.
Replaces the ShareableBitmap::Handle in ContextMenuContextData with a RefPtr<ShareableBitmap>.
Removes the now unnecessary override copy-constructor and assignment-operator.
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
(WebKit::ContextMenuContextData::controlledDataIsEditable):
(WebKit::ContextMenuContextData::operator=): Deleted.
* Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::controlledImage):
(WebKit::ContextMenuContextData::needsServicesMenu):
(WebKit::ContextMenuContextData::controlledImageHandle): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
2014-12-23 Chris Dumez <cdumez@apple.com>
Unreviewed iOS build fix after 177692.
Missing WebKit:: namespace.
* UIProcess/ios/WKContentView.h:
2014-12-23 Anders Carlsson <andersca@apple.com>
Fix 32-build.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
2014-12-23 Timothy Horton <timothy_horton@apple.com>
Install a TextIndicator for link immediate actions
https://bugs.webkit.org/show_bug.cgi?id=139897
<rdar://problem/19333076>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
Install the link's TextIndicator.
(-[WKImmediateActionController menuItemDidClose:]):
Dismiss the TextIndicator and clean up when the item closes.
2014-12-23 Timothy Horton <timothy_horton@apple.com>
Expose ElementBoundingBox on WKHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=139895
<rdar://problem/19333075>
Reviewed by Dan Bernstein.
* UIProcess/API/C/WKHitTestResult.cpp:
(WKHitTestResultGetElementBoundingBox):
* UIProcess/API/C/WKHitTestResult.h:
Expose the rect.
2014-12-23 Timothy Horton <timothy_horton@apple.com>
Remove the custom web page preview code
https://bugs.webkit.org/show_bug.cgi?id=139894
<rdar://problem/19333074>
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _dismissContentRelativeChildWindows]):
(-[WKView _viewForPreviewingURL:initialFrameSize:]): Deleted.
(-[WKView _titleForPreviewOfURL:]): Deleted.
(-[WKView _setPreviewTitle:]): Deleted.
(-[WKView _setPreviewLoading:]): Deleted.
(-[WKView _setPreviewOverrideImage:]): Deleted.
(-[WKView _finishPreviewingURL:withPreviewView:]): Deleted.
(-[WKView _handleClickInPreviewView:URL:]): Deleted.
(-[WKView _shouldUseStandardQuickLookPreview]): Deleted.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController hidePreview]): Deleted.
(-[WKImmediateActionController setPreviewTitle:]): Deleted.
(-[WKImmediateActionController setPreviewLoading:]): Deleted.
(-[WKImmediateActionController setPreviewOverrideImage:]): Deleted.
(-[WKImmediateActionController _animationControllerForCustomPreview]): Deleted.
* UIProcess/mac/WKPagePreviewViewController.h: Removed.
* UIProcess/mac/WKPagePreviewViewController.mm: Removed.
* UIProcess/mac/WKPreviewPopoverAnimationController.h: Removed.
* UIProcess/mac/WKPreviewPopoverAnimationController.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:
Remove all of the custom web page preview code. Clients that want the custom
preview can implement it by overriding the immediate action.
2014-12-23 Anders Carlsson <andersca@apple.com>
Add WebProcessProxy::transformHandlesToObjects
https://bugs.webkit.org/show_bug.cgi?id=139922
Reviewed by Tim Horton.
This will be used to convert between the handles and their respective UI side objects.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
(WebKit::WebProcessProxy::apiObjectByConvertingToHandles): Deleted.
* UIProcess/WebProcessProxy.h:
2014-12-23 Anders Carlsson <andersca@apple.com>
Add handle transform functions to WebConnection
https://bugs.webkit.org/show_bug.cgi?id=139920
Reviewed by Sam Weinig.
This will be used by the web connection code to convert between objects and their respective handles.
* Shared/WebConnection.h:
* UIProcess/WebConnectionToWebProcess.cpp:
(WebKit::WebConnectionToWebProcess::transformHandlesToObjects):
(WebKit::WebConnectionToWebProcess::transformObjectsToHandles):
* UIProcess/WebConnectionToWebProcess.h:
* WebProcess/WebConnectionToUIProcess.cpp:
(WebKit::WebConnectionToUIProcess::transformHandlesToObjects):
(WebKit::WebConnectionToUIProcess::transformObjectsToHandles):
* WebProcess/WebConnectionToUIProcess.h:
2014-12-23 Sam Weinig <sam@webkit.org>
Rename ImmutableDictionary to API::Dictionary and merge MutableDictionary into it
https://bugs.webkit.org/show_bug.cgi?id=139917
Reviewed by Anders Carlsson.
- Renames ImmutableDictionary -> API::Dictionary
- Merges MutableDictionary into the new API::Dictionary
(as a result WKDictionaryIsMutable() now always returns true)
* File list elided *
2014-12-23 Anders Carlsson <andersca@apple.com>
Add WebProcess::transformObjectsToHandles
https://bugs.webkit.org/show_bug.cgi?id=139918
Reviewed by Tim Horton.
This function will be used for transforming bundle objects to their respective handle types
when sending messages to the UI process.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
2014-12-23 Anders Carlsson <andersca@apple.com>
Move dynamic_objc_cast to RetainPtr.h
https://bugs.webkit.org/show_bug.cgi?id=139915
Reviewed by Sam Weinig.
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::dynamic_objc_cast): Deleted.
2014-12-23 Anders Carlsson <andersca@apple.com>
Add WebProcess::transformHandlesToObjects
https://bugs.webkit.org/show_bug.cgi?id=139913
Reviewed by Tim Horton.
Rename objectGraphByTransformingObjectsToHandles to transformObjectsToHandles and add
transformHandlesToObjects that will try to convert handles to the actual bundle type objects.
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
(WebKit::WebProcess::objectGraphByTransformingObjectsToHandles): Deleted.
2014-12-23 Anders Carlsson <andersca@apple.com>
Add WebProcess::objectGraphByTransformingObjectsToHandles
https://bugs.webkit.org/show_bug.cgi?id=139912
Reviewed by Tim Horton.
This will be used to convert Objective-C object graphs containing bundle types to their handle counterparts.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::apiObjectByConvertingFromHandles): Deleted.
Rename apiObjectByConvertingFromHandles to transformHandlesToObjects.
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::objectGraphByTransformingObjectsToHandles):
2014-12-23 Anders Carlsson <andersca@apple.com>
Fix UserMessage::transform to only call shouldTransform once
https://bugs.webkit.org/show_bug.cgi?id=139911
Reviewed by Sam Weinig.
Also, make it possible for transformers to return null objects and change the transformers
to return the passed in object when there's no need to do a transform.
* Shared/UserData.cpp:
(WebKit::transformGraph):
(WebKit::UserData::transform):
(WebKit::UserData::encode): Deleted.
(WebKit::UserData::decode): Deleted.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::apiObjectByConvertingToHandles):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::apiObjectByConvertingFromHandles):
2014-12-23 Sam Weinig <sam@webkit.org>
Rename WebContext to WebProcessPool
https://bugs.webkit.org/show_bug.cgi?id=139909
Rubber-stamped by Anders Carlsson.
- Major renames:
WebContext -> WebProcessPool
WebContextConfiguration -> WebProcessPoolConfiguration
API::ContextConfiguration -> API::ProcessPoolConfiguration
* File list elided *
2014-12-23 Anders Carlsson <andersca@apple.com>
Only call shouldTransformGraph once per graph
https://bugs.webkit.org/show_bug.cgi?id=139910
Reviewed by Sam Weinig.
Don't call shouldTransformGraph for each node in the object graph. Instead, call it once
and then transform the entire graph if needed.
* Shared/mac/ObjCObjectGraph.h:
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::shouldTransformGraph):
(WebKit::transformGraph):
(WebKit::ObjCObjectGraph::transform):
(WebKit::shouldTransform): Deleted.
2014-12-22 Anders Carlsson <andersca@apple.com>
Use a Transformer for UserData as well, to avoid always copying arrays and dictionaries
https://bugs.webkit.org/show_bug.cgi?id=139896
Reviewed by Darin Adler.
* Shared/UserData.cpp:
(WebKit::shouldTransform):
(WebKit::UserData::transform):
* Shared/UserData.h:
(WebKit::UserData::Transformer::~Transformer):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::apiObjectByConvertingToHandles):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::apiObjectByConvertingFromHandles):
2014-12-22 Anders Carlsson <andersca@apple.com>
Make it possible to transform Objective-C object graphs, replacing certain elements with others
https://bugs.webkit.org/show_bug.cgi?id=139893
Reviewed by Sam Weinig.
* Shared/mac/ObjCObjectGraph.h:
(WebKit::ObjCObjectGraph::Transformer::~Transformer):
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::dynamic_objc_cast):
(WebKit::shouldTransform):
(WebKit::ObjCObjectGraph::transform):
2014-12-22 Jaehun Lim <ljaehun.lim@samsung.com>
Unreviewed build fix after r177661 and r177662
* CMakeLists.txt: Add APIPageGroupHandle.cpp to the source list.
2014-12-22 Anders Carlsson <andersca@apple.com>
Convert pages and page groups to their respective handle objects
https://bugs.webkit.org/show_bug.cgi?id=139891
Reviewed by Tim Horton.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::apiObjectByConvertingToHandles):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::apiObjectByConvertingFromHandles):
2014-12-22 Anders Carlsson <andersca@apple.com>
Add a bunch of missing header includes in preparation for making toImpl require the complete type
https://bugs.webkit.org/show_bug.cgi?id=139887
Reviewed by Andreas Kling.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
2014-12-22 Chris Dumez <cdumez@apple.com>
[iOS] Log using FeatureCounter user-triggered zooming
https://bugs.webkit.org/show_bug.cgi?id=139879
<rdar://problem/19329130>
Reviewed by Benjamin Poulain.
Log using FeatureCounter user-triggered zooming on iOS.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::willStartUserTriggeredZooming):
2014-12-22 Anders Carlsson <andersca@apple.com>
Add an API::PageGroupHandle object
https://bugs.webkit.org/show_bug.cgi?id=139881
Reviewed by Sam Weinig.
API::PageGroupHandle won't be exposed to any API, it will only be used to facilitate passing page groups
between the UI and web process inside UserData objects.
* Shared/API/APIObject.h:
* Shared/API/APIPageGroupHandle.cpp: Added.
(API::PageGroupHandle::create):
(API::PageGroupHandle::~PageGroupHandle):
(API::PageGroupHandle::PageGroupHandle):
* Shared/API/APIPageGroupHandle.h: Added.
(API::PageGroupHandle::webPageGroupData):
* Shared/UserData.cpp:
(WebKit::UserData::UserData):
(WebKit::UserData::encode):
(WebKit::UserData::decode):
* Shared/UserData.h:
* UIProcess/WebPageGroup.h:
(WebKit::WebPageGroup::data):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::apiObjectByConvertingToHandles):
* WebKit2.xcodeproj/project.pbxproj:
2014-12-22 Daniel Bates <dabates@apple.com>
Fix the iOS build after <https://trac.webkit.org/changeset/177639>
(https://bugs.webkit.org/show_bug.cgi?id=139866)
Substitute APISecurityOrigin.h for WebSecurityOrigin.h as the latter was renamed to the former.
* UIProcess/ios/WKGeolocationProviderIOS.mm:
2014-12-22 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r177649.
* CMakeLists.txt:
2014-12-22 Csaba Osztrogonác <ossy@webkit.org>
Last URTBF after r177639, GTK builds now.
* UIProcess/API/gtk/WebKitJavascriptResult.cpp:
* UIProcess/API/gtk/WebKitUIClient.cpp:
* UIProcess/API/gtk/WebKitUserContentManager.cpp:
* UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp:
(webkitUserMediaPermissionRequestCreate):
* UIProcess/API/gtk/WebKitUserMediaPermissionRequestPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewRunJavaScriptCallback):
(webkit_web_view_run_javascript):
(resourcesStreamReadCallback):
2014-12-22 Anders Carlsson <andersca@apple.com>
Move more API classes from Shared to Shared/API.
Rubber-stamped by Sam Weinig.
* Shared/API/APIArray.cpp: Renamed from Source/WebKit2/Shared/APIArray.cpp.
* Shared/API/APIArray.h: Renamed from Source/WebKit2/Shared/APIArray.h.
* Shared/API/APIClient.h: Renamed from Source/WebKit2/Shared/APIClient.h.
* Shared/API/APIData.cpp: Renamed from Source/WebKit2/Shared/APIData.cpp.
* Shared/API/APIData.h: Renamed from Source/WebKit2/Shared/APIData.h.
* Shared/API/APIError.cpp: Renamed from Source/WebKit2/Shared/APIError.cpp.
* Shared/API/APIError.h: Renamed from Source/WebKit2/Shared/APIError.h.
* Shared/API/APIFrameHandle.cpp: Renamed from Source/WebKit2/Shared/APIFrameHandle.cpp.
* Shared/API/APIFrameHandle.h: Renamed from Source/WebKit2/Shared/APIFrameHandle.h.
* Shared/API/APIGeometry.cpp: Renamed from Source/WebKit2/Shared/APIGeometry.cpp.
* Shared/API/APIGeometry.h: Renamed from Source/WebKit2/Shared/APIGeometry.h.
* Shared/API/APINumber.h: Renamed from Source/WebKit2/Shared/APINumber.h.
* Shared/API/APIObject.cpp: Renamed from Source/WebKit2/Shared/APIObject.cpp.
* Shared/API/APIObject.h: Renamed from Source/WebKit2/Shared/APIObject.h.
* Shared/API/APIPageHandle.cpp: Renamed from Source/WebKit2/Shared/APIPageHandle.cpp.
* Shared/API/APIPageHandle.h: Renamed from Source/WebKit2/Shared/APIPageHandle.h.
* Shared/API/APIString.h: Renamed from Source/WebKit2/Shared/APIString.h.
* Shared/API/APIURL.h: Renamed from Source/WebKit2/Shared/APIURL.h.
* Shared/API/APIURLRequest.cpp: Renamed from Source/WebKit2/Shared/APIURLRequest.cpp.
* Shared/API/APIURLRequest.h: Renamed from Source/WebKit2/Shared/APIURLRequest.h.
* Shared/API/APIURLResponse.cpp: Renamed from Source/WebKit2/Shared/APIURLResponse.cpp.
* Shared/API/APIURLResponse.h: Renamed from Source/WebKit2/Shared/APIURLResponse.h.
2014-12-22 Csaba Osztrogonác <ossy@webkit.org>
One more URTBF after r177639 to try to make GTK happy.
* UIProcess/API/gtk/WebKitUserContentManager.cpp:
2014-12-22 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r177639 to try to make GTK happy.
* UIProcess/API/gtk/WebKitJavascriptResult.cpp:
2014-12-22 Anders Carlsson <andersca@apple.com>
Rename a bunch of API classes and move them to Shared/API
https://bugs.webkit.org/show_bug.cgi?id=139866
Reviewed by Sam Weinig.
* Shared/API/APISecurityOrigin.h: Renamed from Source/WebKit2/Shared/WebSecurityOrigin.h.
(API::SecurityOrigin::createFromString):
(API::SecurityOrigin::create):
(API::SecurityOrigin::securityOrigin):
(API::SecurityOrigin::SecurityOrigin):
* Shared/API/APISerializedScriptValue.h: Renamed from Source/WebKit2/Shared/WebSerializedScriptValue.h.
(API::SerializedScriptValue::create):
(API::SerializedScriptValue::adopt):
(API::SerializedScriptValue::deserialize):
(API::SerializedScriptValue::dataReference):
(API::SerializedScriptValue::internalRepresentation):
(API::SerializedScriptValue::SerializedScriptValue):
* Shared/API/APIUserContentURLPattern.h: Renamed from Source/WebKit2/Shared/WebUserContentURLPattern.h.
(API::UserContentURLPattern::create):
(API::UserContentURLPattern::host):
(API::UserContentURLPattern::scheme):
(API::UserContentURLPattern::isValid):
(API::UserContentURLPattern::matchesURL):
(API::UserContentURLPattern::matchesSubdomains):
(API::UserContentURLPattern::patternString):
(API::UserContentURLPattern::UserContentURLPattern):
* Shared/API/c/WKSecurityOrigin.cpp:
(WKSecurityOriginGetTypeID):
(WKSecurityOriginCreateFromString):
(WKSecurityOriginCreateFromDatabaseIdentifier):
(WKSecurityOriginCreate):
* Shared/API/c/WKSerializedScriptValue.cpp:
(WKSerializedScriptValueGetTypeID):
(WKSerializedScriptValueCreate):
(WKSerializedScriptValueCreateWithInternalRepresentation):
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toCopiedAPI):
* Shared/API/c/WKUserContentURLPattern.cpp:
(WKUserContentURLPatternGetTypeID):
(WKUserContentURLPatternCreate):
* Shared/SecurityOriginData.cpp:
(WebKit::performAPICallbackWithSecurityOriginDataVector):
* Shared/UserData.cpp:
(WebKit::UserData::encode):
(WebKit::UserData::decode):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
(WebKit::UserMessageDecoder::baseDecode):
* UIProcess/API/APIUIClient.h:
(API::UIClient::exceededDatabaseQuota):
(API::UIClient::decidePolicyForGeolocationPermissionRequest):
(API::UIClient::decidePolicyForUserMediaPermissionRequest):
(API::UIClient::decidePolicyForNotificationPermissionRequest):
* UIProcess/API/C/WKNotification.cpp:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView evaluateJavaScript:completionHandler:]):
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):
* UIProcess/GenericCallback.h:
* UIProcess/Notifications/WebNotification.cpp:
(WebKit::WebNotification::WebNotification):
* UIProcess/Notifications/WebNotification.h:
(WebKit::WebNotification::origin):
* UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::providerDidUpdateNotificationPolicy):
(WebKit::WebNotificationManagerProxy::providerDidRemoveNotificationPolicies):
* UIProcess/Notifications/WebNotificationManagerProxy.h:
* UIProcess/Notifications/WebNotificationProvider.cpp:
* UIProcess/Notifications/WebNotificationProvider.h:
* UIProcess/PageClient.h:
(WebKit::PageClient::decidePolicyForGeolocationPermissionRequest):
* UIProcess/WebApplicationCacheManagerProxy.cpp:
(WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
* UIProcess/WebApplicationCacheManagerProxy.h:
* UIProcess/WebCookieManagerProxy.cpp:
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
(WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
(WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
(WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
(WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
(WebKit::WebDatabaseManagerProxy::didModifyOrigin):
(WebKit::WebDatabaseManagerProxy::didModifyDatabase):
* UIProcess/WebDatabaseManagerProxy.h:
* UIProcess/WebDatabaseManagerProxyClient.cpp:
(WebKit::WebDatabaseManagerProxyClient::didModifyOrigin):
(WebKit::WebDatabaseManagerProxyClient::didModifyDatabase):
* UIProcess/WebDatabaseManagerProxyClient.h:
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
(WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
* UIProcess/WebKeyValueStorageManager.h:
* UIProcess/WebMediaCacheManagerProxy.cpp:
* UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::WebOriginDataManagerProxy::didGetOrigins):
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin):
* UIProcess/WebOriginDataManagerProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::scriptValueCallback):
(WebKit::WebPageProxy::exceededDatabaseQuota):
(WebKit::WebPageProxy::requestGeolocationPermissionForFrame):
(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
(WebKit::WebPageProxy::requestNotificationPermission):
* UIProcess/WebPageProxy.h:
* UIProcess/WebResourceCacheManagerProxy.cpp:
(WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
* UIProcess/WebResourceCacheManagerProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):
* UIProcess/ios/WKContentView.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
(API::InjectedBundle::PageUIClient::didReachApplicationCacheOriginQuota):
(API::InjectedBundle::PageUIClient::didExceedDatabaseQuota):
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
(WebKit::InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota):
(WebKit::InjectedBundlePageUIClient::didExceedDatabaseQuota):
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota):
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
2014-12-21 Sam Weinig <sam@webkit.org>
Allow the WebContext's history client to coexist with WKWebView's history delegate
https://bugs.webkit.org/show_bug.cgi?id=139857
Reviewed by Anders Carlsson.
- Renames API::HistoryClient to API::LegacyContextHistoryClient to make it clear what it is for.
- Re-routes the history client functions from the WebProcessProxy to the WebPageProxy.
- Add history client functions to API::LoaderClient and implement them for NavigationState's
LoaderClient subclass. Removes the need for WKProcessPool to have to setup a history client and
forward to the NavigationState.
* UIProcess/API/APIHistoryClient.h: Removed.
* UIProcess/API/APILegacyContextHistoryClient.h: Copied from Source/WebKit2/UIProcess/API/APIHistoryClient.h.
(API::LegacyContextHistoryClient::~LegacyContextHistoryClient):
(API::LegacyContextHistoryClient::didNavigateWithNavigationData):
(API::LegacyContextHistoryClient::didPerformClientRedirect):
(API::LegacyContextHistoryClient::didPerformServerRedirect):
(API::LegacyContextHistoryClient::didUpdateHistoryTitle):
(API::LegacyContextHistoryClient::populateVisitedLinks):
(API::HistoryClient::~HistoryClient): Deleted.
(API::HistoryClient::didNavigateWithNavigationData): Deleted.
(API::HistoryClient::didPerformClientRedirect): Deleted.
(API::HistoryClient::didPerformServerRedirect): Deleted.
(API::HistoryClient::didUpdateHistoryTitle): Deleted.
(API::HistoryClient::populateVisitedLinks): Deleted.
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didNavigateWithNavigationData):
(API::LoaderClient::didPerformClientRedirect):
(API::LoaderClient::didPerformServerRedirect):
(API::LoaderClient::didUpdateHistoryTitle):
* UIProcess/API/C/WKContext.cpp:
(WKContextSetHistoryClient):
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _initWithConfiguration:]):
* UIProcess/API/mac/WKView.mm:
* UIProcess/Cocoa/HistoryClient.h: Removed.
* UIProcess/Cocoa/HistoryClient.mm: Removed.
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::LoaderClient::didNavigateWithNavigationData):
(WebKit::NavigationState::LoaderClient::didPerformClientRedirect):
(WebKit::NavigationState::LoaderClient::didPerformServerRedirect):
(WebKit::NavigationState::LoaderClient::didUpdateHistoryTitle):
(WebKit::NavigationState::didNavigateWithNavigationData): Deleted.
(WebKit::NavigationState::didPerformClientRedirect): Deleted.
(WebKit::NavigationState::didPerformServerRedirect): Deleted.
(WebKit::NavigationState::didUpdateHistoryTitle): Deleted.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::setHistoryClient):
(WebKit::WebContext::populateVisitedLinks):
* UIProcess/WebContext.h:
(WebKit::WebContext::historyClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didNavigateWithNavigationData):
(WebKit::WebPageProxy::didPerformClientRedirect):
(WebKit::WebPageProxy::didPerformServerRedirect):
(WebKit::WebPageProxy::didUpdateHistoryTitle):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didNavigateWithNavigationData): Deleted.
(WebKit::WebProcessProxy::didPerformClientRedirect): Deleted.
(WebKit::WebProcessProxy::didPerformServerRedirect): Deleted.
(WebKit::WebProcessProxy::didUpdateHistoryTitle): Deleted.
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::updateGlobalHistory):
(WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
(WebKit::WebFrameLoaderClient::setTitle):
2014-12-22 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] another outdated comment
https://bugs.webkit.org/show_bug.cgi?id=139863
Reviewed by Darin Adler.
Remove outdated comment. We nowadays block untrusted connections by
default.
* WebProcess/gtk/WebProcessMainGtk.cpp:
2014-12-21 Eric Carlson <eric.carlson@apple.com>
[iOS] avoid WebVideoFullscreenManager crash
https://bugs.webkit.org/show_bug.cgi?id=139852
<rdar://problem/19319302>
Reviewed by Darin Adler.
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::didExitFullscreen): NULL-check m_layerHostingContext and m_page.
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): NULL-check m_layerHostingContext.
2014-12-21 David Kilzer <ddkilzer@apple.com>
Fix WebKit2 build with newer clang compiler
Fixes the following build error:
In file included from DerivedSources/WebKit2/WebVideoFullscreenManagerProxyMessageReceiver.cpp:32:
Source/WebKit2/Platform/IPC/HandleMessage.h:16:25: error: non-const lvalue reference to type 'Vector<[3 * ...]>' cannot bind to a temporary of type 'Vector<[3 * ...]>'
(object->*function)(std::get<ArgsIndex>(std::forward<ArgsTuple>(args))...);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Source/WebKit2/Platform/IPC/HandleMessage.h:22:5: note: in instantiation of function template specialization 'IPC::callMemberFunctionImpl<WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(WTF::Vector<std::__1::pair<double, double>, 0, WTF::CrashOnOverflow> &), std::__1::tuple<WTF::Vector<std::__1::pair<double, double>, 0, WTF::CrashOnOverflow> >, 0>' requested here
callMemberFunctionImpl(object, function, std::forward<ArgsTuple>(args), ArgsIndicies());
^
Source/WebKit2/Platform/IPC/HandleMessage.h:120:5: note: in instantiation of function template specialization 'IPC::callMemberFunction<WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(WTF::Vector<std::__1::pair<double, double>, 0, WTF::CrashOnOverflow> &), std::__1::tuple<WTF::Vector<std::__1::pair<double, double>, 0, WTF::CrashOnOverflow> >, std::make_index_sequence<1> >' requested here
callMemberFunction(WTF::move(arguments), object, function);
^
DerivedSources/WebKit2/WebVideoFullscreenManagerProxyMessageReceiver.cpp:55:14: note: in instantiation of function template specialization 'IPC::handleMessage<Messages::WebVideoFullscreenManagerProxy::SetSeekableRangesVector, WebKit::WebVideoFullscreenManagerProxy, void (WebKit::WebVideoFullscreenManagerProxy::*)(WTF::Vector<std::__1::pair<double, double>, 0, WTF::CrashOnOverflow> &)>' requested here
IPC::handleMessage<Messages::WebVideoFullscreenManagerProxy::SetSeekableRangesVector>(decoder, this, &WebVideoFullscreenManagerProxy::setSeekableRangesVector);
^
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setSeekableRangesVector):
Make Vector<std::pair<double, double>>& argument const because a
temporary is not allowed to bind to a non-const reference.
2014-12-20 Eric Carlson <eric.carlson@apple.com>
[iOS] add optimized fullscreen API
https://bugs.webkit.org/show_bug.cgi?id=139833
<rdar://problem/18844486>
Reviewed by Simon Fraser.
* Configurations/FeatureDefines.xcconfig: Add ENABLE_VIDEO_PRESENTATION_MODE.
2014-12-20 David Kilzer <ddkilzer@apple.com>
Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
<http://webkit.org/b/139463>
Reviewed by Mark Rowe.
* Configurations/All.xcconfig:
- Only set EXCLUDED_SOURCE_FILE_NAMES on iOS.
* Configurations/Base.xcconfig:
- Only set FRAMEWORK_CONTENT_DIRECTORY, GCC_ENABLE_OBJC_GC and
TOOLCHAINS on OS X.
* Configurations/BaseLegacyProcess.xcconfig:
- Only set SKIP_INSTALL on iOS.
* Configurations/BaseTarget.xcconfig:
- Set WEBKIT_FRAMEWORKS_DIR and UMBRELLA_FRAMEWORKS_DIR based on
SDK, and simply them.
* Configurations/BaseXPCService.xcconfig:
- Set INSTALL_PATH_ACTUAL_Normal based on SDK.
* Configurations/DebugRelease.xcconfig:
- Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
- Set WEBKIT_SYSTEM_INTERFACE_LIBRARY based on SDK.
* Configurations/NetworkProcess.xcconfig:
- Only set EXCLUDED_SHIM_FILE_NAME and CODE_SIGN_ENTITLEMENTS on
iOS.
* Configurations/NetworkService.Development.xcconfig:
- Set INFOPLIST_FILE based on SDK.
- Simplify CODE_SIGN_ENTITLEMENTS for iOS.
* Configurations/NetworkService.xcconfig:
- Set INFOPLIST_FILE based on SDK.
- Simplify CODE_SIGN_ENTITLEMENTS for iOS.
* Configurations/PluginProcess.xcconfig:
- Only set EXCLUDED_SHIM_FILE_NAME and SKIP_INSTALL on iOS.
* Configurations/PluginProcessShim.xcconfig:
- Set OTHER_LDFLAGS based on SDK.
* Configurations/PluginService.32.xcconfig:
- Only set VALID_ARCHS on OS X.
- Set OTHER_LDFLAGS based on platform-specific values.
- Only set SKIP_INSTALL on iOS.
* Configurations/PluginService.64.xcconfig:
- Set ARCHS based on SDK.
- Set OTHER_LDFLAGS based on platform-specific values.
- Only set SKIP_INSTALL on iOS.
* Configurations/PluginService.Development.xcconfig:
- Only set SKIP_INSTALL on iOS.
- Set OTHER_LDFLAGS based on platform-specific values.
* Configurations/SecItemShim.xcconfig:
- Set OTHER_LDFLAGS based on platform-specific values.
* Configurations/Version.xcconfig:
- Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
* Configurations/WebContentProcess.xcconfig:
- Only set EXCLUDED_SHIM_FILE_NAME on iOS.
- Only set CODE_SIGN_ENTITLEMENTS on iOS Simulator.
* Configurations/WebContentService.Development.xcconfig:
- Set INFOPLIST_FILE and BUNDLE_LOCALIZATION_KEY based on SDK.
- Only set CODE_SIGN_ENTITLEMENTS on iOS hardware.
- Set OTHER_LDFLAGS based on platform-specific values.
* Configurations/WebContentService.xcconfig: Ditto.
* Configurations/WebKit.xcconfig:
- Set FRAMEWORK_AND_LIBRARY_LDFLAGS, SECTORDER_FLAGS, and
WK_API_AVAILABILITY_ENABLED based on SDK.
- Set OTHER_LDFLAGS based on platform-specific values.
- Only set EXCLUDED_SOURCE_FILE_NAMES on iOS.
* Configurations/WebKit2.xcconfig:
- Set INSTALL_PATH, INSTALL_PATH_ACTUAL, DYLIB_INSTALL_NAME_BASE,
NORMAL_WEBKIT2_FRAMEWORKS_DIR, WEBKIT2_FRAMEWORKS_DIR and
NORMAL_PRODUCTION_FRAMEWORKS_DIR based on SDK.
- Set SKIP_INSTALL on iOS.
* Configurations/WebProcessShim.xcconfig:
- Set OTHER_LDFLAGS based on platform-specific values.
2014-12-19 Jessie Berlin <jberlin@webkit.org>
Build fix.
* UIProcess/mac/WebInspectorProxyMac.mm:
2014-12-19 Jessie Berlin <jberlin@webkit.org>
Simplify the build fixes from r177615 and r177617.
Rubber-stamped by Dan Bernstein.
* UIProcess/mac/WebInspectorProxyMac.mm:
2014-12-19 Jessie Berlin <jberlin@webkit.org>
Another attempt at a speculative build fix.
* UIProcess/mac/WebInspectorProxyMac.mm:
2014-12-19 Jessie Berlin <jberlin@webkit.org>
Speculative build fix after r177610.
* UIProcess/mac/WebInspectorProxyMac.mm:
2014-12-19 Chris Dumez <cdumez@apple.com>
[iOS] Add didEnterFullscreen / didExitFullscreen callbacks to WKUIDelegatePrivate
https://bugs.webkit.org/show_bug.cgi?id=139835
<rdar://problem/19312042>
Reviewed by Anders Carlsson.
Add didEnterFullscreen / didExitFullscreen callbacks to WKUIDelegatePrivate
so that they can be implemented in MobileSafari.
* UIProcess/API/APIUIClient.h:
(API::UIClient::didEnterFullscreen):
(API::UIClient::didExitFullscreen):
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didEnterFullscreen):
(WebKit::UIDelegate::UIClient::didExitFullscreen):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didEnterFullscreen):
(WebKit::WebPageProxy::didExitFullscreen):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen):
2014-12-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inspector does not reopen correctly after Inspector Process crashes
https://bugs.webkit.org/show_bug.cgi?id=139838
Reviewed by Timothy Hatcher.
When the WebContentProcess holding the Inspector Frontend crashes, we
would properly tear down the inspector objects. However, the next time
the inspector is opened, when creating the new page in the Inspector
Page Group, a WebPageProxy is created with a Terminated WebProcessProxy.
That Terminated WebProcessProxy is automatically replaced with the next
load request is given. The newly created process was missing the
message listeners and assumed URL access settings that the
WebInspectorProxy had set on the old process.
So, WebInspectorProxy now listens for and resets the process properties
when the inspector process is recreated.
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess):
Reset process properties when the process is relaunched.
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::didClose):
Save connection identifier if we need to establish connections later.
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter didRelaunchProcess]):
(-[WKWebInspectorWKView _didRelaunchProcess]):
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Send WebInspectorProxy a message when the process underlying the
WKView is relaunched.
2014-12-19 Anders Carlsson <andersca@apple.com>
Get rid of the hardcoded set of structs in the message generation script
https://bugs.webkit.org/show_bug.cgi?id=139844
Reviewed by Tim Horton.
Instead, make it possible to use 'struct' in front of the type name to declare that the type is a struct.
* DatabaseProcess/DatabaseProcess.messages.in:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
* NetworkProcess/NetworkProcess.messages.in:
* PluginProcess/PluginProcess.messages.in:
* PluginProcess/WebProcessConnection.messages.in:
* Scripts/webkit/messages.py:
(struct_or_class):
(forward_declarations_for_namespace):
(forward_declarations_and_headers):
* Scripts/webkit/model.py:
(Parameter.__init__):
* Scripts/webkit/parser.py:
(parse_parameters_string):
* UIProcess/Storage/StorageManager.messages.in:
* UIProcess/WebContext.messages.in:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/ApplicationCache/WebApplicationCacheManager.messages.in:
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
* WebProcess/OriginData/WebOriginDataManager.messages.in:
* WebProcess/ResourceCache/WebResourceCacheManager.messages.in:
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebProcess.messages.in:
2014-12-19 Timothy Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setIgnoresNonWheelEvents:]):
2014-12-19 Beth Dakin <bdakin@apple.com>
Preview popovers don't show an arrow for large links
https://bugs.webkit.org/show_bug.cgi?id=139842
-and corresponding-
<rdar://problem/19301470>
Reviewed by Tim Horton.
This patch addresses the case where the link is so large that there is no
available space on any side once you factor in screen padding. In that case, we
should give up early on not obscuring the link.
* UIProcess/mac/WKPreviewPopoverAnimationController.mm:
(-[WKPreviewPopoverAnimationController _targetSizeForPagePreview]):
(-[WKPreviewPopoverAnimationController _effectivePaddingWithPreviewPadding:]):
(-[WKPreviewPopoverAnimationController _maxSpaceAvailableOnYEdgeForOriginRect:withScreenRect:previewPadding:]):
(-[WKPreviewPopoverAnimationController _maxSpaceAvailableOnXEdgeForOriginRect:withScreenRect:previewPadding:]):
(-[WKPreviewPopoverAnimationController _preferredPopoverSizeWithPreviewPadding:forTargetSize:]):
2014-12-19 Timothy Horton <timothy_horton@apple.com>
WKView's ignoresNonWheelEvents should ignore immediate actions
https://bugs.webkit.org/show_bug.cgi?id=139839
<rdar://problem/19312111>
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
(-[WKView _setIgnoresNonWheelEvents:]):
Install/uninstall the immediate action gesture recognizer when
toggling ignoresNonWheelEvents.
2014-12-19 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r177593.
* PluginProcess/PluginProcess.h:
* PluginProcess/unix/PluginProcessUnix.cpp:
(WebKit::PluginProcess::platformInitializePluginProcess):
* Shared/WebProcessCreationParameters.h:
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
* WebProcess/WebProcess.h:
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-12-19 Anders Carlsson <andersca@apple.com>
Use WebCore::MachSendRights for the compositing render server port
https://bugs.webkit.org/show_bug.cgi?id=139834
Reviewed by Tim Horton.
* Platform/IPC/HandleMessage.h:
(IPC::callMemberFunctionImpl):
* Platform/mac/LayerHostingContext.h:
* Platform/mac/LayerHostingContext.mm:
(WebKit::LayerHostingContext::createForPort):
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::PluginProcess):
(WebKit::PluginProcess::initializePluginProcess):
* PluginProcess/PluginProcess.h:
(WebKit::PluginProcess::compositingRenderServerPort):
* PluginProcess/mac/PluginControllerProxyMac.mm:
(WebKit::PluginControllerProxy::compositingRenderServerPort):
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializePluginProcess):
* Shared/Plugins/PluginProcessCreationParameters.cpp:
* Shared/Plugins/PluginProcessCreationParameters.h:
* Shared/WebCoreArgumentCoders.h:
* Shared/WebProcessCreationParameters.h:
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<MachSendRight>::encode):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::platformInitializePluginProcess):
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess):
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::NPN_GetValue):
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
(WebKit::NetscapePlugin::compositingRenderServerPort):
(WebKit::NetscapePlugin::setLayerHostingMode):
* WebProcess/Plugins/PluginController.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::compositingRenderServerPort):
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeWebProcess):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::compositingRenderServerPort):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-12-19 Andreas Kling <akling@apple.com>
Ref-ify TextIterator API.
<https://webkit.org/b/139823>
Reviewed by Antti Koivisto.
* WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
(-[WKDOMTextIterator currentRange]):
2014-12-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r177574.
https://bugs.webkit.org/show_bug.cgi?id=139821
"Broke Production builds by installing
libWebCoreTestSupport.dylib in the wrong directory" (Requested
by ddkilzer on #webkit).
Reverted changeset:
"Switch from using PLATFORM_NAME to SDK selectors in WebCore,
WebInspectorUI, WebKit, WebKit2"
https://bugs.webkit.org/show_bug.cgi?id=139463
http://trac.webkit.org/changeset/177574
2014-12-19 David Kilzer <ddkilzer@apple.com>
Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
<http://webkit.org/b/139463>
Reviewed by Mark Rowe.
* Configurations/All.xcconfig:
- Only set EXCLUDED_SOURCE_FILE_NAMES on iOS.
* Configurations/Base.xcconfig:
- Only set FRAMEWORK_CONTENT_DIRECTORY, GCC_ENABLE_OBJC_GC and
TOOLCHAINS on OS X.
* Configurations/BaseLegacyProcess.xcconfig:
- Only set SKIP_INSTALL on iOS.
* Configurations/BaseTarget.xcconfig:
- Set WEBKIT_FRAMEWORKS_DIR and UMBRELLA_FRAMEWORKS_DIR based on
SDK, and simply them.
* Configurations/BaseXPCService.xcconfig:
- Set INSTALL_PATH_ACTUAL_Normal based on SDK.
* Configurations/DebugRelease.xcconfig:
- Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
- Set WEBKIT_SYSTEM_INTERFACE_LIBRARY based on SDK.
* Configurations/NetworkProcess.xcconfig:
- Only set EXCLUDED_SHIM_FILE_NAME and CODE_SIGN_ENTITLEMENTS on
iOS.
* Configurations/NetworkService.Development.xcconfig:
- Set INFOPLIST_FILE based on SDK.
- Simplify CODE_SIGN_ENTITLEMENTS for iOS.
* Configurations/NetworkService.xcconfig:
- Set INFOPLIST_FILE based on SDK.
- Simplify CODE_SIGN_ENTITLEMENTS for iOS.
* Configurations/PluginProcess.xcconfig:
- Only set EXCLUDED_SHIM_FILE_NAME and SKIP_INSTALL on iOS.
* Configurations/PluginProcessShim.xcconfig:
- Set OTHER_LDFLAGS based on SDK.
* Configurations/PluginService.32.xcconfig:
- Only set VALID_ARCHS on OS X.
- Set OTHER_LDFLAGS based on platform-specific values.
- Only set SKIP_INSTALL on iOS.
* Configurations/PluginService.64.xcconfig:
- Set ARCHS based on SDK.
- Set OTHER_LDFLAGS based on platform-specific values.
- Only set SKIP_INSTALL on iOS.
* Configurations/PluginService.Development.xcconfig:
- Only set SKIP_INSTALL on iOS.
- Set OTHER_LDFLAGS based on platform-specific values.
* Configurations/SecItemShim.xcconfig:
- Set OTHER_LDFLAGS based on platform-specific values.
* Configurations/Version.xcconfig:
- Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
* Configurations/WebContentProcess.xcconfig:
- Only set EXCLUDED_SHIM_FILE_NAME on iOS.
- Only set CODE_SIGN_ENTITLEMENTS on iOS Simulator.
* Configurations/WebContentService.Development.xcconfig:
- Set INFOPLIST_FILE and BUNDLE_LOCALIZATION_KEY based on SDK.
- Only set CODE_SIGN_ENTITLEMENTS on iOS hardware.
- Set OTHER_LDFLAGS based on platform-specific values.
* Configurations/WebContentService.xcconfig: Ditto.
* Configurations/WebKit.xcconfig:
- Set FRAMEWORK_AND_LIBRARY_LDFLAGS, SECTORDER_FLAGS, and
WK_API_AVAILABILITY_ENABLED based on SDK.
- Set OTHER_LDFLAGS based on platform-specific values.
- Only set EXCLUDED_SOURCE_FILE_NAMES on iOS.
* Configurations/WebKit2.xcconfig:
- Set INSTALL_PATH, INSTALL_PATH_ACTUAL, DYLIB_INSTALL_NAME_BASE,
NORMAL_WEBKIT2_FRAMEWORKS_DIR, WEBKIT2_FRAMEWORKS_DIR and
NORMAL_PRODUCTION_FRAMEWORKS_DIR based on SDK.
- Set SKIP_INSTALL on iOS.
* Configurations/WebProcessShim.xcconfig:
- Set OTHER_LDFLAGS based on platform-specific values.
2014-12-18 Jon Honeycutt <jhoneycutt@apple.com>
iOS build fix.
* UIProcess/mac/WKPreviewPopoverAnimationController.mm:
2014-12-18 Jessie Berlin <jberlin@webkit.org>
Speculative build-fix after r177522.
* UIProcess/mac/WKPreviewPopoverAnimationController.mm:
(-[WKPreviewPopoverAnimationController setPreviewOverrideImage:]):
2014-12-18 Andreas Kling <akling@apple.com>
Ref-ify various Document-related things.
<https://webkit.org/b/139796>
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
(-[WKDOMDocument createTextNode:]):
2014-12-18 Beth Dakin <bdakin@apple.com>
Speculative build fix.
* UIProcess/ProcessThrottler.h:
2014-12-18 Anders Carlsson <andersca@apple.com>
Use MachSendRight in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139800
Reviewed by Tim Horton.
* Platform/IPC/ArgumentEncoder.h:
(IPC::ArgumentEncoder::encode):
(IPC::ArgumentEncoder::operator<<):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::encode):
(WebKit::RemoteLayerBackingStore::decode):
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<MachSendRight>::encode):
(IPC::ArgumentCoder<MachSendRight>::decode):
2014-12-18 Gavin Barraclough <barraclough@apple.com>
Remove custom token mechanism from ProcessThrottler
https://bugs.webkit.org/show_bug.cgi?id=139744
Reviewed by Geoff Garen.
ProcessThrottler implements its own token-based counter mechanism, but should
just use RefCounter.
* UIProcess/Cocoa/NavigationState.h:
- remove std::unique_ptr.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::didChangeIsLoading):
- remove std::make_unique.
* UIProcess/GenericCallback.h:
(WebKit::CallbackBase::CallbackBase):
(WebKit::GenericCallback::create):
(WebKit::GenericCallback::GenericCallback):
(WebKit::CallbackMap::put):
- remove std::unique_ptr.
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::ProcessThrottler):
(WebKit::m_backgroundCounter):
(WebKit::ProcessThrottler::assertionState):
(WebKit::ProcessThrottler::updateAssertion):
(WebKit::ProcessThrottler::ForegroundActivityToken::ForegroundActivityToken): Deleted.
(WebKit::ProcessThrottler::ForegroundActivityToken::~ForegroundActivityToken): Deleted.
(WebKit::ProcessThrottler::BackgroundActivityToken::BackgroundActivityToken): Deleted.
(WebKit::ProcessThrottler::BackgroundActivityToken::~BackgroundActivityToken): Deleted.
- removed old implementation of ForegroundActivityToken/BackgroundActivityToken.
* UIProcess/ProcessThrottler.h:
(WebKit::ProcessThrottler::foregroundActivityToken):
(WebKit::ProcessThrottler::backgroundActivityToken):
- added accessors to create activity tokens.
(WebKit::ProcessThrottler::weakPtr): Deleted.
- removed members replaced by RefCounter types.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityToken):
(WebKit::WebPageProxy::validateCommand):
(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getContentsAsMHTMLData):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::getSelectionAsWebArchiveData):
(WebKit::WebPageProxy::getMainResourceDataOfFrame):
(WebKit::WebPageProxy::getResourceDataFromFrame):
(WebKit::WebPageProxy::getWebArchiveOfFrame):
(WebKit::WebPageProxy::getMarkedRangeAsync):
(WebKit::WebPageProxy::getSelectedRangeAsync):
(WebKit::WebPageProxy::characterIndexForPointAsync):
(WebKit::WebPageProxy::firstRectForCharacterRangeAsync):
(WebKit::WebPageProxy::takeSnapshot):
(WebKit::WebPageProxy::installViewStateChangeCompletionHandler):
- remove std::make_unique.
* UIProcess/WebPageProxy.h:
- remove std::unique_ptr.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):
- remove std::make_unique.
* UIProcess/WebProcessProxy.h:
- remove std::unique_ptr.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::updateSelectionWithTouches):
(WebKit::WebPageProxy::requestAutocorrectionData):
(WebKit::WebPageProxy::applyAutocorrection):
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::selectTextWithGranularityAtPoint):
(WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection):
(WebKit::WebPageProxy::selectPositionAtPoint):
(WebKit::WebPageProxy::beginSelectionInDirection):
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::requestDictationContext):
(WebKit::WebPageProxy::requestAutocorrectionContext):
(WebKit::WebPageProxy::selectWithTwoTouches):
(WebKit::WebPageProxy::moveSelectionByOffset):
(WebKit::WebPageProxy::focusNextAssistedNode):
- remove std::make_unique.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
- remove std::make_unique.
2014-12-18 Gavin Barraclough <barraclough@apple.com>
Add strong typing to RefCounter interface, return value as a bool.
https://bugs.webkit.org/show_bug.cgi?id=139776
Reviewed by Geoff Garen.
Currently all token vended by a RefCounter have the same type - Ref<RefCounter::Count>.
This means there is no compile time type checking to prevent mistakes. Update the count()
method to token<>(), templated on type used to identify the token being returned.
Calls to token<T>() will return a result of type RefCounter::Token<T>.
There are a few problems with the fact the counter will return you an exact count of the
number of outstanding tokens:
- It is desirable to only fire the callback on zero-edge changes; it is more consistent
to do so if the value is only readable as a boolean.
- It is desirable to provide the value as an argument to the callback, however to make
this useful for integer values it is also necessary to indicate the direction of change
(0->1 is often interesting where 2->1 is not).
- There is a mismatch between the precision of returning a count, and the inherent
imprecision of a token based mechanism, where it may be difficult to guarantee
absolutely no unnecessary refcount churn, and thus unintentional counter values.
Removed PluginProcessManager::m_processSuppressionEnabled. Now the callback only fires on
zero-edge transitions we no longer need this to filter changes.
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::PluginProcessManager):
- updateProcessSuppressionState -> updateProcessSuppressionDisabled.
* UIProcess/Plugins/PluginProcessManager.h:
(WebKit::PluginProcessManager::processSuppressionDisabledForPageCount): Deleted.
(WebKit::PluginProcessManager::processSuppressionDisabledToken):
- processSuppressionDisabledForPageCount -> processSuppressionDisabledToken.
(WebKit::PluginProcessManager::processSuppressionEnabled): Deleted.
(WebKit::PluginProcessManager::processSuppressionDisabled):
- processSuppressionEnabled -> processSuppressionDisabled.
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
- processSuppressionEnabled -> processSuppressionDisabled.
* UIProcess/Plugins/mac/PluginProcessManagerMac.mm:
(WebKit::PluginProcessManager::updateProcessSuppressionState): Deleted.
(WebKit::PluginProcessManager::updateProcessSuppressionDisabled):
- updateProcessSuppressionState -> updateProcessSuppressionDisabled
* UIProcess/ProcessThrottler.h:
- added UserObservablePageToken, ProcessSuppressionDisabledToken types.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::m_processSuppressionDisabledForPageCounter):
- lambda now has bool argument.
* UIProcess/WebContext.h:
(WebKit::WebContext::userObservablePageCount):
(WebKit::WebContext::processSuppressionDisabledForPageCount):
- count() -> token<>(), changed return type.
* UIProcess/WebPageProxy.h:
- changed types of token members.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::updateProcessSuppressionState):
renamed m_pluginProcessManagerProcessSuppressionDisabledCount -> m_pluginProcessManagerProcessSuppressionDisabledToken.
2014-12-18 Timothy Horton <timothy_horton@apple.com>
Try to fix some builds.
* UIProcess/mac/WKPreviewPopoverAnimationController.mm:
2014-12-18 Anders Carlsson <andersca@apple.com>
Fix build.
* UIProcess/API/mac/WKViewInternal.h:
2014-12-18 Chris Dumez <cdumez@apple.com>
Add missing availability annotation on @property _featureCounterEnabled
https://bugs.webkit.org/show_bug.cgi?id=139794
<rdar://problem/19266254>
Rubber-stamped by Dan Bernstein.
Follow-up to r177526 adding availability annotation on @property
_featureCounterEnabled.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
2014-12-18 Beth Dakin <bdakin@apple.com>
Need to re-enable action menus
https://bugs.webkit.org/show_bug.cgi?id=139795
-and corresponding-
rdar://problem/19299367
Reviewed by Tim Horton.
Re-enable the menus by un-commenting the code to create the menu and controller.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
performActionMenuHitTest already takes a parameter indicating whether the hit test
is for an immediate action or not. The callback didPerformActionMenuHitTest needs
that information too so that it knows whether to call into the
ActionMenuController or the ImmediateActionController.
(-[WKView _didPerformActionMenuHitTest:forImmediateAction:userData:]):
(-[WKView _didPerformActionMenuHitTest:userData:]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didPerformActionMenuHitTest):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformActionMenuHitTest):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
2014-12-18 Chris Dumez <cdumez@apple.com>
[WK2] Stop using WKPreferencesPrivate API to toggle FeatureCounter support
https://bugs.webkit.org/show_bug.cgi?id=139794
<rdar://problem/19266254>
Reviewed by Anders Carlsson.
Stop using WKPreferencesPrivate API to toggle FeatureCounter support
and use WKWebViewConfigurationPrivate API instead. FeatureCounter is
not meant to change state after the view has been created.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetFeatureCounterEnabled): Deleted.
(WKPreferencesGetFeatureCounterEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _featureCounterEnabled]): Deleted.
(-[WKPreferences _setFeatureCounterEnabled:]): Deleted.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _featureCounterEnabled]):
(-[WKWebViewConfiguration _setFeatureCounterEnabled:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
2014-12-18 Timothy Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setPreviewOverrideImage:]):
2014-12-18 Timothy Horton <timothy_horton@apple.com>
Change page preview loading order, and add a TextIndicator
https://bugs.webkit.org/show_bug.cgi?id=139793
<rdar://problem/19288547>
Reviewed by Beth Dakin.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Build a TextIndicator for links.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _dismissContentRelativeChildWindows]):
(-[WKView _setPreviewTitle:]):
(-[WKView _setPreviewLoading:]):
Remove unneeded WK_API_ENABLED #ifs.
(-[WKView _setPreviewOverrideImage:]):
Add; forward to WKImmediateActionController.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController willDestroyView:]):
Shut down the WKPreviewPopoverAnimationController.
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
Don't build an immediate action item here; we'll always build it in
willBeginAnimation, and the one we build here is likely to be wrong.
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController hidePreview]):
(-[WKImmediateActionController setPreviewTitle:]):
(-[WKImmediateActionController setPreviewLoading:]):
(-[WKImmediateActionController setPreviewOverrideImage:]):
(-[WKImmediateActionController _animationControllerForCustomPreview]):
(-[WKImmediateActionController _createPreviewPopoverIfNeededForURL:]): Deleted.
(-[WKImmediateActionController popoverWillClose:]): Deleted.
(targetSizeFitsInAvailableSpace): Deleted.
(-[WKImmediateActionController largestPopoverSize]): Deleted.
(-[WKImmediateActionController _preferredPopoverSizeWithPreviewPadding:]): Deleted.
(-[WKImmediateActionController pagePreviewViewController:viewForPreviewingURL:initialFrameSize:]): Deleted.
(-[WKImmediateActionController pagePreviewViewController:titleForPreviewOfURL:]): Deleted.
(-[WKImmediateActionController pagePreviewViewControllerWasClicked:]): Deleted.
Move preview popover code to WKPreviewPopoverAnimationController.
Install and uninstall the link text indicator when necessary.
* UIProcess/mac/WKPagePreviewViewController.h:
* UIProcess/mac/WKPagePreviewViewController.mm:
(-[WKPagePreviewViewController setLoading:]):
(-[WKPagePreviewViewController loadView]):
(-[WKPagePreviewViewController replacePreviewWithImage:atSize:]):
Allow overriding the preview with a full-view NSImage.
Hide the preview view until the loading spinner goes away.
* UIProcess/mac/WKPreviewPopoverAnimationController.h: Copied from Source/WebKit2/UIProcess/mac/WKImmediateActionController.h.
* UIProcess/mac/WKPreviewPopoverAnimationController.mm: Added.
(+[WKPreviewPopoverAnimationController _shouldImmediatelyShowPreview]):
(-[WKPreviewPopoverAnimationController initWithURL:view:page:originRect:eventLocationInView:]):
(-[WKPreviewPopoverAnimationController close]):
(-[WKPreviewPopoverAnimationController setPreviewLoading:]):
(-[WKPreviewPopoverAnimationController setPreviewOverrideImage:]):
If we have shown the popover, choose a size strictly smaller than
its current size.
(-[WKPreviewPopoverAnimationController _hidePreview]):
(-[WKPreviewPopoverAnimationController setPreviewTitle:]):
(-[WKPreviewPopoverAnimationController _createPreviewPopover]):
(-[WKPreviewPopoverAnimationController _showPreview]):
(targetSizeFitsInAvailableSpace):
(-[WKPreviewPopoverAnimationController largestPopoverSize]):
(-[WKPreviewPopoverAnimationController _targetSizeForPagePreview]):
(-[WKPreviewPopoverAnimationController _preferredPopoverSizeWithPreviewPadding:forTargetSize:]):
(-[WKPreviewPopoverAnimationController _previewWatchdogTimerFired:]):
(-[WKPreviewPopoverAnimationController recognizerWillBeginAnimation:]):
(-[WKPreviewPopoverAnimationController recognizerDidUpdateAnimation:]):
(-[WKPreviewPopoverAnimationController recognizerDidCancelAnimation:]):
(-[WKPreviewPopoverAnimationController recognizerDidCompleteAnimation:]):
(-[WKPreviewPopoverAnimationController recognizerDidDismissAnimation:]):
(-[WKPreviewPopoverAnimationController pagePreviewViewController:viewForPreviewingURL:initialFrameSize:]):
(-[WKPreviewPopoverAnimationController pagePreviewViewController:titleForPreviewOfURL:]):
(-[WKPreviewPopoverAnimationController pagePreviewViewControllerWasClicked:]):
(-[WKPreviewPopoverAnimationController popoverWillClose:]):
Move code in from WKImmediateActionController.
Forward NSImmediateActionAnimationControllerDelegate methods
to the popover's animation controller if we've popped it.
Pop the popover if we've loaded or 1 second has passed, whichever
comes first.
* WebKit2.xcodeproj/project.pbxproj:
2014-12-18 Anders Carlsson <andersca@apple.com>
Add a MachSendRight class to WebCore and use it in IOSurface
https://bugs.webkit.org/show_bug.cgi?id=139787
Reviewed by Tim Horton.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::encode):
2014-12-18 Daniel Bates <dabates@apple.com>
Attempt to fix the iOS build after <http://trac.webkit.org/changeset/177486>
(https://bugs.webkit.org/show_bug.cgi?id=139755)
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture): Wrap return value of Range::create() in RefPtr<Range>()
to make the the compiler happy since it wants clauses of the ternary operator to have the same data type
and Ref<Range> object does not support nullptr.
(WebKit::WebPage::selectWordBackward): Substitute Ref::ptr() for PassRefPtr::get().
(WebKit::WebPage::moveSelectionByOffset): Ditto.
(WebKit::WebPage::selectPositionAtPoint): Ditto.
(WebKit::WebPage::selectPositionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::requestDictationContext): Ditto.
(WebKit::computeAutocorrectionContext): Ditto.
2014-12-18 Antti Koivisto <antti@apple.com>
Remove alwaysUseBaselineOfPrimaryFont setting
https://bugs.webkit.org/show_bug.cgi?id=139770
Reviewed by Anders Carlsson.
* Shared/WebPreferencesDefinitions.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2014-12-18 Adrian Perez de Castro <aperez@igalia.com>
[GTK] Implement webkit_web_view_is_playing_audio()
https://bugs.webkit.org/show_bug.cgi?id=138918
Reviewed by Carlos Garcia Campos.
Implements webkit_web_view_is_playing_audio(), and overrides
UIClient::isPlayingAudioDidChange() to be able to emit change
notification signals for the new WebKitWebView::is-playing-audio
property.
* UIProcess/API/gtk/WebKitUIClient.cpp:
(isPlayingAudioDidChange): Added.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewIsPlayingAudioChanged): Helper function to emit the
emit the notify::is-playing-audio signal when needed.
(webkitWebViewGetProperty): Handle the WebKitWebView::is-playing-audio
property.
(webkit_web_view_class_init): Install the
WebKitWebView::is-playing-audio property.
(webkit_web_view_is_playing_audio): Added.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add
webkit_web_view_is_playing_audio() to the list of public API
functions.
2014-12-18 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Allow to build with ENABLE_NETWORK_CACHE
https://bugs.webkit.org/show_bug.cgi?id=139728
Reviewed by Antti Koivisto.
Just make it build for now.
* CMakeLists.txt: Add new files to compilation.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry): Use
ENABLE(SHAREABLE_RESOURCE) when ShareableResource is used.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::decodeStorageEntry): Ditto.
(WebKit::makeCacheKey): Use ENABLE(CACHE_PARTITIONING) for ResourceRequest::cachePartition().
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCacheStorage::Data::isNull): Move implementation
to platform specific files.
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::Data::isNull): Moved from the header.
* NetworkProcess/cache/NetworkCacheStorageSoup.cpp: Added.
(WebKit::NetworkCacheStorage::Data::Data):
(WebKit::NetworkCacheStorage::Data::data):
(WebKit::NetworkCacheStorage::Data::isNull):
(WebKit::NetworkCacheStorage::open):
(WebKit::NetworkCacheStorage::NetworkCacheStorage):
(WebKit::NetworkCacheStorage::initializeKeyFilter):
(WebKit::NetworkCacheStorage::removeEntry):
(WebKit::NetworkCacheStorage::dispatchRetrieveOperation):
(WebKit::NetworkCacheStorage::dispatchPendingRetrieveOperations):
(WebKit::NetworkCacheStorage::retrieve):
(WebKit::NetworkCacheStorage::store):
(WebKit::NetworkCacheStorage::setMaximumSize):
(WebKit::NetworkCacheStorage::clear):
* PlatformGTK.cmake: Add NetworkCacheStorageSoup.cpp.
* config.h:
2014-12-17 Dan Bernstein <mitz@apple.com>
<rdar://problem/19282508> WebKitLegacy is unusable due to bad dylib identifier
https://bugs.webkit.org/show_bug.cgi?id=139760
Reviewed by Anders Carlsson.
* Configurations/WebKit2.xcconfig:
2014-12-17 Beth Dakin <bdakin@apple.com>
Page previews are sometimes sized much smaller than it seems they should be
https://bugs.webkit.org/show_bug.cgi?id=139754
-and corresponding-
rdar://problem/19286550
Reviewed by Tim Horton.
Increase the minimum size and add in a missing else!!
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _preferredPopoverSizeWithPreviewPadding:]):
2014-12-17 Anders Carlsson <andersca@apple.com>
Ref-ify WebPageProxy and WebProcessProxy creation functions
https://bugs.webkit.org/show_bug.cgi?id=139751
Reviewed by Andreas Kling.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::create):
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::createWebPage):
* UIProcess/WebProcessProxy.h:
2014-12-17 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed iOS Build Fix after r177459.
* UIProcess/ios/WebInspectorProxyIOS.mm:
(WebKit::WebInspectorProxy::platformInvalidate):
(WebKit::WebInspectorProxy::platformHide):
Add missing WebInspectorProxy platform methods.
2014-12-17 Enrica Casucci <enrica@apple.com>
[iOS] Define button and action should respect profile settings.
https://bugs.webkit.org/show_bug.cgi?id=139739
rdar://problem/15461887
Reviewed by Joseph Pecoraro.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _define:]):
2014-12-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: [Mac] Occosional Crashes Closing Inspector
https://bugs.webkit.org/show_bug.cgi?id=139740
Reviewed by Timothy Hatcher.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent):
The WebPageProxy could have gotten destroyed in handling (e.g. keyboard shortcut
to close the Inspector Window), so protect the object to avoid destruction
during handling.
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebPageProxy.cpp:
Add platformInvalidate opportunity for the platform to do invalidation work.
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformInvalidate):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformInvalidate):
Empty implementations, these ports do not need to do anything.
* UIProcess/WebInspectorProxy.h:
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::WebInspectorProxy::platformDidClose):
(WebKit::WebInspectorProxy::platformInvalidate):
When closing / invalidating make sure we close the WKView to clear client
for any delayed callbacks.
2014-12-17 Chris Dumez <cdumez@apple.com>
[iOS] Make it possible to toggle FeatureCounter support at runtime
https://bugs.webkit.org/show_bug.cgi?id=139688
<rdar://problem/19266254>
Reviewed by Andreas Kling.
Add private settings API to toggle FeatureCounter support on Safari and
MobileSafari.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetFeatureCounterEnabled):
(WKPreferencesGetFeatureCounterEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _featureCounterEnabled]):
(-[WKPreferences _setFeatureCounterEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2014-12-17 Anders Carlsson <andersca@apple.com>
Clean up SQL statement building in SQLiteIDBCursor
https://bugs.webkit.org/show_bug.cgi?id=139741
Reviewed by Andreas Kling.
This vastly simplifies the code and gets rid of the last
uses of DEPRECATED_DEFINE_STATIC_LOCAL in WebKit2.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::buildIndexStatement):
(WebKit::buildObjectStoreStatement):
(WebKit::SQLiteIDBCursor::establishStatement):
(WebKit::getIndexStatement): Deleted.
(WebKit::getObjectStoreStatement): Deleted.
2014-12-17 Andreas Kling <akling@apple.com>
Purge PassRefPtr from Frame.
<https://webkit.org/b/139731>
Reviewed by Anders Carlsson.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSubframe):
2014-12-17 Dan Bernstein <mitz@apple.com>
iOS build fix
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::PageClient::setTextIndicatorAnimationProgress):
2014-12-17 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r177427.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::setTextIndicatorAnimationProgress):
* UIProcess/API/gtk/PageClientImpl.h:
2014-12-16 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed, EFL build fix since r177427.
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::setTextIndicatorAnimationProgress): Added.
* UIProcess/CoordinatedGraphics/WebView.h:
2014-12-16 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Move WebCore/platform/graphics/surfaces to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=139641
Reviewed by Andreas Kling.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2014-12-16 Timothy Horton <timothy_horton@apple.com>
Implement and adopt two new TextIndicator presentation animations
https://bugs.webkit.org/show_bug.cgi?id=139715
<rdar://problem/19237945>
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setTextIndicator:fadeOut:]):
(-[WKView _setTextIndicatorAnimationProgress:]):
(-[WKView _setTextIndicator:fadeOut:animationCompletionHandler:]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setTextIndicatorAnimationProgress):
(WebKit::WebPageProxy::performActionMenuHitTestAtLocation):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setTextIndicatorAnimationProgress):
(WebKit::PageClientImpl::didPerformDictionaryLookup):
Remove the completion handler block argument from TextIndicator
installation.
Plumb animation progress through PageClient to TextIndicatorWindow.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WKImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
(-[WKImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):
(-[WKImmediateActionController _menuItemForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForText]):
Forward immediate action gesture recognizer animation progress
to TextIndicator. Force us to keep the selection when immediate
action popovers steal first responder status from the WebView.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::textIndicatorTransitionForActionMenu):
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Factor out the presentation animation decision code.
For immediate actions, of the Lookup range is equal to the
selection range, use a Crossfade animation; otherwise, use a FadeIn
animation.
Push whether the actionMenuHitTest is for an immediate action
or a menu to the Web process, to make the presentation animation
decision code live entirely in the Web process.
Avoid extracting encoded image data if we know we're doing
an immediate action and will never need it.
2014-12-16 Anders Carlsson <andersca@apple.com>
Fix lambda and std::function formatting
https://bugs.webkit.org/show_bug.cgi?id=139719
Reviewed by Sam Weinig.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getOrigins):
(WebKit::DatabaseProcess::deleteEntriesForOrigin):
(WebKit::DatabaseProcess::deleteEntriesModifiedBetweenDates):
(WebKit::DatabaseProcess::deleteAllEntries):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::deleteDatabase):
(WebKit::UniqueIDBDatabase::getOrEstablishIDBDatabaseMetadata):
(WebKit::UniqueIDBDatabase::openTransaction):
(WebKit::UniqueIDBDatabase::beginTransaction):
(WebKit::UniqueIDBDatabase::commitTransaction):
(WebKit::UniqueIDBDatabase::resetTransaction):
(WebKit::UniqueIDBDatabase::rollbackTransaction):
(WebKit::UniqueIDBDatabase::postTransactionOperation):
(WebKit::UniqueIDBDatabase::changeDatabaseVersion):
(WebKit::UniqueIDBDatabase::createObjectStore):
(WebKit::UniqueIDBDatabase::deleteObjectStore):
(WebKit::UniqueIDBDatabase::clearObjectStore):
(WebKit::UniqueIDBDatabase::createIndex):
(WebKit::UniqueIDBDatabase::deleteIndex):
(WebKit::UniqueIDBDatabase::putRecord):
(WebKit::UniqueIDBDatabase::getRecord):
(WebKit::UniqueIDBDatabase::openCursor):
(WebKit::UniqueIDBDatabase::cursorAdvance):
(WebKit::UniqueIDBDatabase::cursorIterate):
(WebKit::UniqueIDBDatabase::count):
(WebKit::UniqueIDBDatabase::deleteRange):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::store):
* Shared/AsyncTask.h:
(WebKit::AsyncTask::AsyncTask):
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):
* Shared/WebContextMenuItemData.cpp:
(WebKit::WebContextMenuItemData::WebContextMenuItemData):
* Shared/WebContextMenuItemData.h:
(WebKit::WebContextMenuItemData::selectionHandler):
* Shared/mac/SecItemShim.cpp:
(WebKit::responseMap):
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::PluginProcessManager):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::m_processSuppressionDisabledForPageCounter):
* UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::CallbackSynchronizer::create):
(WebKit::CallbackSynchronizer::CallbackSynchronizer):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKSelectionHandlerWrapper initWithSelectionHandler:]):
(WebKit::nsMenuItemVector):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::deleteDatabase):
(WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata):
(WebKit::WebIDBServerConnection::openTransaction):
(WebKit::WebIDBServerConnection::beginTransaction):
(WebKit::WebIDBServerConnection::commitTransaction):
(WebKit::WebIDBServerConnection::resetTransaction):
(WebKit::WebIDBServerConnection::rollbackTransaction):
(WebKit::WebIDBServerConnection::setIndexKeys):
(WebKit::WebIDBServerConnection::createObjectStore):
(WebKit::WebIDBServerConnection::createIndex):
(WebKit::WebIDBServerConnection::deleteIndex):
(WebKit::WebIDBServerConnection::get):
(WebKit::WebIDBServerConnection::put):
(WebKit::WebIDBServerConnection::count):
(WebKit::WebIDBServerConnection::deleteRange):
(WebKit::WebIDBServerConnection::clearObjectStore):
(WebKit::WebIDBServerConnection::deleteObjectStore):
(WebKit::WebIDBServerConnection::changeDatabaseVersion):
(WebKit::WebIDBServerConnection::openCursor):
(WebKit::WebIDBServerConnection::cursorAdvance):
(WebKit::WebIDBServerConnection::cursorIterate):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
* WebProcess/OriginData/WebOriginDataManagerSupplement.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getOrigins):
(WebKit::WebProcess::deleteEntriesForOrigin):
(WebKit::WebProcess::deleteEntriesModifiedBetweenDates):
(WebKit::WebProcess::deleteAllEntries):
* WebProcess/WebProcess.h:
2014-12-16 Anders Carlsson <andersca@apple.com>
Get rid of a couple of binds in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139717
Reviewed by Sam Weinig.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::postDatabaseTask):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::didShutdownBackingStore):
(WebKit::UniqueIDBDatabase::postMainThreadTask):
(WebKit::UniqueIDBDatabase::performNextMainThreadTask):
(WebKit::UniqueIDBDatabase::postDatabaseTask):
(WebKit::UniqueIDBDatabase::performNextMainThreadTaskWithoutAdoptRef): Deleted.
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::initializeDeadNameSource):
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::processLauncherWorkQueue):
(WebKit::ProcessLauncher::ProcessLauncher):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::unprotectPluginFromDestruction):
(WebKit::derefPluginView): Deleted.
2014-12-16 Andreas Kling <akling@apple.com>
Use Ref for SecurityOrigin.
<https://webkit.org/b/139710>
Reviewed by Anders Carlsson.
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::databaseFilenameIdentifier):
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::WebIDBServerConnection):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addOriginAccessWhitelistEntry):
(WebKit::InjectedBundle::removeOriginAccessWhitelistEntry):
2014-12-16 Anders Carlsson <andersca@apple.com>
Remove deprecated StorageNamespaceImpl overloads
https://bugs.webkit.org/show_bug.cgi?id=139713
Reviewed by Andreas Kling.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace): Deleted.
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace): Deleted.
* WebProcess/Storage/StorageNamespaceImpl.h:
2014-12-16 Beth Dakin <bdakin@apple.com>
Speculative build fix.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _animationControllerForCustomPreview]):
2014-12-16 Beth Dakin <bdakin@apple.com>
REGRESSION: Preview popovers obscure the link, look wrong
https://bugs.webkit.org/show_bug.cgi?id=139711
-and corresponding-
rdar://problem/19271854
Reviewed by Tim Horton.
Switch to using NSPopoverAnimationController.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForCustomPreview]):
2014-12-16 Timothy Horton <timothy_horton@apple.com>
Immediate action popovers can get stuck open
https://bugs.webkit.org/show_bug.cgi?id=139709
<rdar://problem/19270279>
Reviewed by Beth Dakin.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
Don't clear the animation controller; it breaks things and was unnecessary.
2014-12-16 Conrad Shultz <conrad_shultz@apple.com>
Add a progress indicator to the preview popover
https://bugs.webkit.org/show_bug.cgi?id=139699
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _setPreviewLoading:]):
Wrap -[WKImmediateActionController setPreviewLoading:].
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _createPreviewPopoverIfNeededForURL:]):
Flag the preview view controller as loading before beginning the load.
(-[WKImmediateActionController setPreviewLoading:]):
Wrap -[WKPagePreviewViewController setLoading:].
* UIProcess/mac/WKPagePreviewViewController.h:
* UIProcess/mac/WKPagePreviewViewController.mm:
(-[WKPagePreviewViewController setLoading:]):
Toggle the progress indicator animation state.
(-[WKPagePreviewViewController isLoading]):
Accessor.
(-[WKPagePreviewViewController loadView]):
Create and center an indeterminate progress indicator that won't scale with the preview content.
2014-12-16 Enrica Casucci <enrica@apple.com>
Fix iOS builders for 8.0
https://bugs.webkit.org/show_bug.cgi?id=139495
Reviewed by Jer Noble
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mayAutomaticallyShowVideoOptimized]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
2014-12-16 Gavin Barraclough <barraclough@apple.com>
Move Mac process suppression from WebCore to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139705
Reviewed by Geoff Garen.
Currently PageThrottler constructs the PageActivityState, holds a copy of the ViewState,
and an optional UserActivity.
Instead, still construct the PageActivityState but just pass this out via the Page to WebPage.
Logic From PageThrottler::updateUserActivity merged into WebPage::updateUserActivity.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::setPageActivityState):
- added to propagate PageActivityState to WebPage.
* WebProcess/WebCoreSupport/WebChromeClient.h:
- added setPageActivityState to propagate PageActivityState to WebPage.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
- calls to updateUserActivity.
(WebKit::WebPage::setPageActivityState):
- calls to updateUserActivity.
(WebKit::WebPage::updateUserActivity):
- incorporate logic from PageThrottler::updateUserActivity.
(WebKit::WebPage::setViewState):
- calls to updateUserActivity.
(WebKit::WebPage::updatePreferences):
- calls to updateUserActivity.
* WebProcess/WebPage/WebPage.h:
- added setPageActivityState, m_activityState.
2014-12-16 Anders Carlsson <andersca@apple.com>
More StorageManager modernization
https://bugs.webkit.org/show_bug.cgi?id=139704
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
(WebKit::StorageManager::findStorageArea):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
2014-12-16 Anders Carlsson <andersca@apple.com>
Use Ref in another StorageManager function
https://bugs.webkit.org/show_bug.cgi?id=139700
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
2014-12-16 Anders Carlsson <andersca@apple.com>
Use Ref in StorageManager
https://bugs.webkit.org/show_bug.cgi?id=139698
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::TransientLocalStorageNamespace::create):
(WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::clone):
(WebKit::StorageManager::LocalStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::create):
* UIProcess/Storage/StorageManager.h:
2014-12-16 Gavin Barraclough <barraclough@apple.com>
Split UserActivity from disabled flag in WebPage
https://bugs.webkit.org/show_bug.cgi?id=139696
Reviewed by Geoffrey Garen.
In preparation for other things driving the UserActivity.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
- initialize new members.
(WebKit::WebPage::updateUserActivity):
- start/stop the m_userActivity, based on m_processSupressionEnabled
(WebKit::WebPage::updatePreferences):
- call updateUserActivity to account for m_processSupressionEnabled changes.
* WebProcess/WebPage/WebPage.h:
- split m_processSuppressionDisabledByWebPreference -> m_processSupressionEnabled, m_userActivity.
2014-12-16 Anders Carlsson <andersca@apple.com>
Get rid of PassRefPtr inside StorageManager
https://bugs.webkit.org/show_bug.cgi?id=139693
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::StorageArea::clone):
(WebKit::StorageManager::LocalStorageNamespace::create):
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::create):
* UIProcess/Storage/StorageManager.h:
2014-12-16 Tim Horton <timothy_horton@apple.com>
Disable TextIndication for Lookup immediate actions
https://bugs.webkit.org/show_bug.cgi?id=139684
Reviewed by Anders Carlsson.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _animationControllerForText]):
2014-12-16 Dan Bernstein <mitz@apple.com>
[Cocoa] WKWebProcessPlugInLoadDelegate can’t tell what type of same-document navigation has happened
https://bugs.webkit.org/show_bug.cgi?id=139669
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/_WKSameDocumentNavigationType.h: Added. Moved the
_WKSameDocumentNavigationType type definition here from WKNavigationDelegatePrivate.h.
* Shared/API/Cocoa/_WKSameDocumentNavigationTypeInternal.h: Added.
(WebKit::toWKSameDocumentNavigationType): Moved from NavigationState.mm.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toSameDocumentNavigationType): Added this conversion helper.
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Added #import.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::toWKSameDocumentNavigationType): Deleted.
* WebKit2.xcodeproj/project.pbxproj: Updated for added headers.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: Declared new
delegate method that take a navigation type parameter.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(didSameDocumentNavigationForFrame): Changed to call the new delegate method, passing the
navigation type.
2014-12-16 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.7.3 release.
* gtk/NEWS: Add release notes for 2.7.3.
2014-12-16 Antti Koivisto <antti@apple.com>
WebKit level persistent caching
https://bugs.webkit.org/show_bug.cgi?id=30322
Minor cleanups based on comments by Joseph Pecoraro.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::decodeStorageEntry):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
2014-12-15 Bartlomiej Gajda <b.gajda@samsung.com>
Build fix after r177301.
https://bugs.webkit.org/show_bug.cgi?id=139666
Reviewed by Gyuyoung Kim.
* WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
(WebKit::WebPage::findZoomableAreaForPoint):
2014-12-15 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Possible crash when setting the WKWebViews's scroll view delegate, if the scroll view outlives the web view
https://bugs.webkit.org/show_bug.cgi?id=139662
rdar://problem/18083882
Reviewed by Benjamin Poulain.
Null out the internal delegate on the WKScrollView when the WKWebView goes away, since
it's possible for a client to set its own scroll view delegate, forcing the creation of
a WKScrollViewDelegateForwarder, and then retain the UIScrollView past the lifetime of
the WKWebView. In this situation, the WKScrollViewDelegateForwarder's internalDelegate
would point to a deleted WKWebView.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView dealloc]):
2014-12-15 Beth Dakin <bdakin@apple.com>
Make lookup an immediate action instead of an action menu item
https://bugs.webkit.org/show_bug.cgi?id=139661
-and corresponding-
rdar://problem/19198414
Reviewed by Tim Horton.
New type.
* Shared/API/c/WKImmediateActionTypes.h:
ActionMenuHitTestResult now includes a DictionaryPopupInfo.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Remove all lookup menu items.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForText]):
(-[WKActionMenuController _defaultMenuItemsForEditableText]):
(-[WKActionMenuController _defaultMenuItemsForEditableTextWithSuggestions]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(-[WKActionMenuController _lookupText:]): Deleted.
Set the defaultAnimationController to the lookup-provided animation controller
when appropriate.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForText]):
Re-factor performDictionaryLookupForRange() so that most of the work is done in a
new function called dictionaryPopupInfoForRange(). This was that code can be used
for both performing a dictionary lookup and just getting the DictionaryPopupInfo
for the ActionMenuHitTest.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForRange):
(WebKit::WebPage::performDictionaryLookupForRange):
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::lookupTextAtLocation):
2014-12-15 Matt Baker <mattbaker@apple.com>
Web Inspector: Docked inspector repositioned incorrectly when dragging frame borders
https://bugs.webkit.org/show_bug.cgi?id=139415
Reviewed by Joseph Pecoraro.
The _ignoreNextInspectedViewFrameDidChange flag wasn't set back to NO after
being tested by inspectedViewFrameDidChange.
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter inspectedViewFrameDidChange:]):
2014-12-15 Gavin Barraclough <barraclough@apple.com>
Simplify tracking of process suppression disabled for PluginProcessManager
https://bugs.webkit.org/show_bug.cgi?id=139611
Unreviewed gtk/efl build fix.
* UIProcess/Plugins/PluginProcessManager.h:
- missing #ifdef
2014-12-15 Timothy Horton <timothy_horton@apple.com>
Implement Data Detectors immediate actions for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139617
<rdar://problem/19198539>
Reviewed by Beth Dakin.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _menuItemForDataDetectedText]):
Note that this action context is only for immediate actions.
2014-12-15 Myles C. Maxfield <mmaxfield@apple.com>
Addressing post-review comments in r177035
https://bugs.webkit.org/show_bug.cgi?id=139557
Reviewed by Darin Adler.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::elementBoundingBoxInWindowCoordinates): Migrate off rendererBoundingBox().
* WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
(WebKit::WebPage::findZoomableAreaForPoint): Ditto.
2014-12-15 Timothy Horton <timothy_horton@apple.com>
Implement Data Detectors immediate actions for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139617
<rdar://problem/19198539>
Reviewed by Beth Dakin.
* Shared/API/c/WKImmediateActionTypes.h:
Add a new type.
* UIProcess/API/mac/WKView.mm:
(-[WKView mouseDown:]):
Send mouseDown along to the WKImmediateActionController too.
(-[WKView initWithFrame:context:configuration:webView:]):
Temporarily disable action menus.
(-[WKView _dismissContentRelativeChildWindows]):
Hide the immediate action preview when detaching child windows.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController willDestroyView:]):
Clear the DDActionContext when tearing down the view.
(-[WKImmediateActionController wkView:willHandleMouseDown:]):
(-[WKImmediateActionController _cancelImmediateAction]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _updateImmediateActionItem]):
(-[WKImmediateActionController hidePreview]):
(-[WKImmediateActionController popoverWillClose:]):
(-[WKImmediateActionController _menuItemForDataDetectedText]):
Copy most of the DataDetectors implementation into WKImmediateActionController.
2014-12-15 Myles C. Maxfield <mmaxfield@apple.com>
Delete Notation because we don't use it
https://bugs.webkit.org/show_bug.cgi?id=139171
Reviewed by Kent Tamura.
* WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
(WebKit::WKDOMNodeClass):
* mac/MigrateHeadersFromWebKitLegacy.make:
2014-12-15 David Kilzer <ddkilzer@apple.com>
Remove last references to OfflineStorage process
<http://webkit.org/b/139648>
Reviewed by Anders Carlsson.
* WebKit2.xcodeproj/project.pbxproj: Remove last references to
the OfflineStorage process. See r154251 and r154256.
2014-12-15 Gavin Barraclough <barraclough@apple.com>
Change HysteresisActivity to use a lambda
https://bugs.webkit.org/show_bug.cgi?id=139636
Reviewed by Darin Adler.
The current implementation provides notifications via callbacks to a delegate. Using a delegate
with callbacks is limiting a number of ways. The callback names are very ambiguous, the callbacks
must either be on a separate object (more boilerplate), or the callback must be public for
HysteresisActivity to call them, or friends get involved. Without the boilerplate of extra
delegate objects it's hard to scale use of these objects - a single object can't serve as a
delegate for multiple HysteresisActivity members.
Instead, make HysteresisActivity take a lambda to callback on state change. To simplify, changed
HysteresisState to only track Started/Stopped states (removed WillStopPendingTimeout).
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp:
(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
- HysteresisActivity now takes a lambda, not a delegate.
(WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated):
(WebKit::WebSQLiteDatabaseTracker::started): Deleted.
(WebKit::WebSQLiteDatabaseTracker::stopped): Deleted.
- started/stopped merged into hysteresisUpdated
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h:
- HysteresisActivity is no longer templated on delegate type, changed function declarations.
2014-12-15 Antti Koivisto <antti@apple.com>
WebKit level persistent caching
https://bugs.webkit.org/show_bug.cgi?id=30322
Reviewed by Sam Weinig.
We can improve performance and open new optimization possibilities by bringing network caching into WebKit.
This patch implements an experimental HTTP cache living in the network process.
The main classes are:
NetworkCache
- Implements HTTP cache validation logic including Vary header
- Initially non-range GET only
- Fast serialization using WebKit types (ResourcesResponse etc) instead of native network layer types
NetworkCacheKey
- Unique identifier for cache entries
- Keyed on method/partition/URL
NetworkCacheStorage
- Storage backend
- dispatch-IO based implementation (generic posix implementation wouldn't be difficult)
- File system only (no SQLite or similar)
- One file per resource containing both header and body data
- Zero persistent global metadata
- Bloom filter for fast fail
NetworkCacheEncoder/Decoder
- Serializisation support with integrity verification.
The code is behind the NETWORK_CACHE feature flag and requires network process to be enabled to use.
This patch does not enable the feature yet by default.
Test: http/tests/cache/disk-cache-validation.html
* NetworkProcess/cache/NetworkCache.cpp: Added.
* NetworkProcess/cache/NetworkCache.h: Added.
* NetworkProcess/cache/NetworkCacheKey.cpp: Added.
* NetworkProcess/cache/NetworkCacheKey.h: Added.
* NetworkProcess/cache/NetworkCacheStorage.h: Added.
* NetworkProcess/cache/NetworkCacheStorage.mm: Added.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::platformSetCacheModel):
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::clearCacheForAllOrigins):
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::clearCacheForAllOrigins):
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::tryGetShareableHandleFromCFData):
* Platform/Logging.h:
* WebKit2.xcodeproj/project.pbxproj:
* config.h:
2014-12-15 Gavin Barraclough <barraclough@apple.com>
Simplify tracking of process suppression disabled for PluginProcessManager
https://bugs.webkit.org/show_bug.cgi?id=139611
Reviewed by Darin Adler.
Previously if process suppression state changed for any context we would
iterate over all contexts to recompute.
There was also an inconsistency in the code. When plugin processes are
created they called processSuppressionIsEnabledForAllContexts(), which
checked WebContext::processSuppressionEnabled(), which in turn checks
two things - whether any page is currently visible, and whether the
suppression is currently disabled for any page. However when updating
process supression state we would call
processSuppressionPreferenceIsEnabledForAllContexts(), which would just
check the value of the key from the context's default PageGroup.
We shouldn't be taking visibility into account (this is handled from the
content, where we know which pages have instances of which plugins), but
we should be checking the current pref value of each page.
We already track in each context whether any page has teh pref set to
disable throttling; add a counter to the shared PluginProcessManager to
coallesce across all contexts.
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::PluginProcessManager):
- added m_processSuppressionDisabledForPageCounter, m_processSuppressionEnabled.
* UIProcess/Plugins/PluginProcessManager.h:
(WebKit::PluginProcessManager::processSuppressionDisabledForPageCount):
- accessor for WebContext to increment count.
(WebKit::PluginProcessManager::processSuppressionEnabled):
- accessor for PluginProcessProxy.
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
- get initial supression state from the PluginProcessManager, not WebContext.
* UIProcess/Plugins/mac/PluginProcessManagerMac.mm:
(WebKit::PluginProcessManager::updateProcessSuppressionState):
(WebKit::PluginProcessManager::setProcessSuppressionEnabled): Deleted.
- setProcessSuppressionEnabled -> updateProcessSuppressionState
rather than WebContext setting suppression state, PluginProcessManager detects
when this may need to change & determines a new value for itself.
* UIProcess/WebContext.h:
- removed processSuppressionIsEnabledForAllContexts, processSuppressionPreferenceIsEnabledForAllContexts
updateProcessSuppressionState is no longer const (updates m_pluginProcessManagerProcessSuppressionDisabledCount).
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::updateProcessSuppressionState):
- instead of explicitly recomputing plugin throttling state from Within the WebContext, just update
m_pluginProcessManagerProcessSuppressionDisabledCount to count a RefCounter on the shared PluginProcessManager.
(WebKit::WebContext::processSuppressionIsEnabledForAllContexts): Deleted.
(WebKit::WebContext::processSuppressionPreferenceIsEnabledForAllContexts): Deleted.
- removed.
2014-12-15 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use API::LoaderClient instead of WKPageLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=139583
Reviewed by Gustavo Noronha Silva.
It simplifies the code and it will make easier to implement new
loader client methods.
* UIProcess/API/gtk/WebKitBackForwardList.cpp:
(webkitBackForwardListChanged):
* UIProcess/API/gtk/WebKitBackForwardListPrivate.h:
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(LoaderClient::LoaderClient):
(attachLoaderClientToView):
(didStartProvisionalLoadForFrame): Deleted.
(didReceiveServerRedirectForProvisionalLoadForFrame): Deleted.
(didFailProvisionalLoadWithErrorForFrame): Deleted.
(didCommitLoadForFrame): Deleted.
(didFinishLoadForFrame): Deleted.
(didFailLoadWithErrorForFrame): Deleted.
(didDisplayInsecureContentForFrame): Deleted.
(didRunInsecureContentForFrame): Deleted.
(didChangeBackForwardList): Deleted.
(didReceiveAuthenticationChallengeInFrame): Deleted.
(processDidCrash): Deleted.
2014-12-15 Gwang Yoon Hwang <yoon@igalia.com>
Add initial implementation of ThreadSafeCoordinatedSurface, ThreadedCompositor, and SimpleViewportController
https://bugs.webkit.org/show_bug.cgi?id=118383
Reviewed by Martin Robinson.
Implements an initial version of the Threaded Compositor.
Threaded Compositor is a variant of Coordinated Graphics implementation.
Basic structure of the implementaion is simliar, thus, Threaded
Compositor reuses lots of classes from Coordinated Graphics. However,
instead of compositing on UI Process, Threaded Compositor performs
compositing on a dedicate thread of Web Process.
No new test, because it is in experimental stage.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
Removed a assertion not to force its creation in the main thread. In
the Threaded Compositor, it can be created in the dedicated thread.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: Added.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h: Added.
Implements a surface using ImageBuffer as a backend to use in the Web
Process.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: Added.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: Added.
Implements a compositor which runs on the created thread. It owns
SimpleViewportController and CoordinatedGraphicsScene to render scene on the
actual surface.
* Shared/CoordinatedGraphics/SimpleViewportController.cpp: Added.
* Shared/CoordinatedGraphics/SimpleViewportController.h: Added.
This class is responsible to handle scale factor and scrolling position
with a simplifed logic in the compositing thread.
2014-12-14 Andreas Kling <akling@apple.com>
Replace PassRef with Ref/Ref&& across the board.
<https://webkit.org/b/139587>
Reviewed by Darin Adler.
* UIProcess/WebBackForwardList.h:
(WebKit::WebBackForwardList::create):
* UIProcess/WebBatteryManagerProxy.cpp:
(WebKit::WebBatteryManagerProxy::create):
* UIProcess/WebBatteryManagerProxy.h:
* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::createNonNull):
* UIProcess/WebPageGroup.h:
* UIProcess/efl/BatteryProvider.cpp:
(BatteryProvider::create):
* UIProcess/efl/BatteryProvider.h:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::shouldApplyStyle):
* WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
(WebKit::WebUserMediaClient::requestPermission):
* WebProcess/WebCoreSupport/WebUserMediaClient.h:
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::create):
* WebProcess/WebPage/ViewUpdateDispatcher.h:
2014-12-12 Gavin Barraclough <barraclough@apple.com>
Split WebPageProxy::m_preventProcessSuppression to track pref/visibility separately
https://bugs.webkit.org/show_bug.cgi?id=139600
Reviewed by Geoff Garen.
Previously WebPageProxy::m_preventProcessSuppression would be set if either the page was visible
or its suppression was disabled by the pref. Instead track these separately. This will make the
user observability state applicable on iOS, too.
Add a new counter to WebContext, and split the counting in WebPageProxy.
::updateProccessSuppressionState continues to track the pref change (which matches its name),
tracking of user observability changes moved to updateActivityToken (which we should further
merge with; it already tracks observability to control process state for iOS).
* UIProcess/WebContext.cpp:
(WebKit::m_processSuppressionDisabledForPageCounter):
- added new RefCounter.
* UIProcess/WebContext.h:
(WebKit::WebContext::processSuppressionDisabledForPageCount):
- added new RefCounter.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcess):
- no longer needs to call updateProccessSuppressionState (pref has not changed; handled by the call to updateActivityToken).
(WebKit::WebPageProxy::dispatchViewStateChange):
- no longer needs to call updateProccessSuppressionState (pref has not changed; handled by the call to updateActivityToken).
(WebKit::WebPageProxy::updateActivityToken):
- this now also updated the user observability counter.
(WebKit::WebPageProxy::updateProccessSuppressionState):
- now only tracks whether this is disabled via the preference.
(WebKit::WebPageProxy::resetStateAfterProcessExited):
- clear the user observability counter; thsi will be reset on reattach.
* UIProcess/WebPageProxy.h:
- added new RefCounter::Count.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::processSuppressionEnabled):
- processSuppressionEnabled is disabled if *neither*:
- there are user observable pages
- disabled by pref for any page.
2014-12-12 Beth Dakin <bdakin@apple.com>
Need a fake mouse move after hiding data detectors UI
https://bugs.webkit.org/show_bug.cgi?id=139608
-and corresponding-
rdar://problem/19221935
Reviewed by Tim Horton.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dataDetectorsDidHideUI):
2014-12-12 Anders Carlsson <andersca@apple.com>
Handle caches in WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=139607
<rdar://problem/19107614>
Reviewed by Sam Weinig.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeNetworkProcessAccessType):
2014-12-12 Enrica Casucci <enrica@apple.com>
[iOS] Predictions are not updated when using navigation buttons.
https://bugs.webkit.org/show_bug.cgi?id=139567
rdar://problem/19132585
Reviewed by Dan Bernstein.
When moving focus programmatically, we need to notify the keyboard so that it
can update the prediction bar.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession setAccessoryViewCustomButtonTitle:]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView inputAssistantButtonItems]):
(-[WKContentView accessoryTab:]):
(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _stopAssistingNode]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::focusNextAssistedNode):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::focusNextAssistedNode):
2014-12-12 Timothy Horton <timothy_horton@apple.com>
TextIndicator (and other view-relative subwindows) is not dismissed on zoom gesture
https://bugs.webkit.org/show_bug.cgi?id=139580
<rdar://problem/19226350>
Reviewed by Anders Carlsson.
* UIProcess/PageClient.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::dismissContentRelativeChildWindows):
(WebKit::PageClientImpl::dismissDictionaryLookupPanel): Deleted.
(WebKit::PageClientImpl::dismissActionMenuPopovers): Deleted.
Merge dismissDictionaryLookupPanel and dismissActionMenuPopovers into
_dismissContentRelativeChildWindows, which also dismisses TextIndicator and the
text correction panel. Dismissal of any child windows which are anchored to
the page content now bottlenecks through this function.
(WebKit::PageClientImpl::navigationGestureDidBegin):
Dismiss all anchored subwindows when starting a navigation gesture, not
just TextIndicator and action menu popovers.
* UIProcess/API/mac/WKView.mm:
(-[WKView scrollWheel:]):
No need to dismiss TextIndicator here; we've got this covered in the more-inclusive
WebPageProxy::pageDidScroll, and will now dismiss more things.
(-[WKView mouseDown:]):
Dismiss more things.
(-[WKView viewDidMoveToWindow]):
Dismiss more things.
(-[WKView _dismissContentRelativeChildWindows]):
The aforementioned combined dismissal function.
(-[WKView magnifyWithEvent:]):
(-[WKView smartMagnifyWithEvent:]):
(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
Any time the page magnification changes, dismiss all the things.
* UIProcess/API/mac/WKViewPrivate.h:
Expose _dismissContentRelativeChildWindows instead of _dismissActionMenuPopovers;
for all existing clients, it makes more sense to dismiss all view-relative subwindows
than just a subset of them.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
Make use of dismissAnchoredSubwindows.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
Dismiss more things.
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
(-[WKActionMenuController dismissActionMenuPopovers]): Deleted.
dismissActionMenuPopovers is folded into WKView's _dismissContentRelativeChildWindows.
(-[WKActionMenuController _showTextIndicator]): Deleted.
(-[WKActionMenuController _hideTextIndicator]): Deleted.
Fold _showTextIndicator and _hideTextIndicator into their only callers.
_isShowingTextIndicator was never necessary, because it's OK to change
the current TextIndicator at any time, and a newer one is always more relevant.
2014-12-12 Gavin Barraclough <barraclough@apple.com>
Keep single RefCounter to track whether any pages in a context are process suppressible
https://bugs.webkit.org/show_bug.cgi?id=139576
Reviewed by Sam Weinig.
Currently we keep separate counters in each process, and coallesce these in the
context. Instead we should have a counter in the WebContext.
Also, changed the name to better describe the state we're tracking, rather than
describing what it's currently used for. This counter will also be useful for
iOS, to better manage background state of the networking process.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
- initialize m_userObservablePageCounter.
* UIProcess/WebContext.h:
(WebKit::WebContext::updateProcessSuppressionState):
- Added no-op implementation for non-cocoa platforms.
(WebKit::WebContext::userObservablePageCount):
- Count the number of user visible (audible / visible) pages in Context.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateProccessSuppressionState):
- WebProcessProxy::processSuppressionCounter -> WebContext::userObservablePageCount
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::didFinishLaunching):
- moved all processs supression state tracking to the WebContext.
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::processSuppressionCounter): Deleted.
- moved all processs supression state tracking to the WebContext.
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::allPagesAreProcessSuppressible): Deleted.
(WebKit::WebProcessProxy::updateProcessSuppressionState): Deleted.
- moved all processs supression state tracking to the WebContext.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::processSuppressionEnabled):
- no need to interate all processes; just have a single counter.
* UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::allPagesAreProcessSuppressible): Deleted.
(WebKit::WebProcessProxy::updateProcessSuppressionState): Deleted.
- moved all processs supression state tracking to the WebContext.
2014-12-12 Alexey Proskuryakov <ap@apple.com>
Layout Test http/tests/loading/307-after-303-after-post.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=73030
Reviewed by Anders Carlsson.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess): Added a FIXME comment.
(WebKit::WebContext::setIconDatabasePath): Don't enable m_iconDatabase if the path
is empty, meaning that the database is disabled (which is not a great way to say
that, but WebKit2 icon database doesn't support enabling/disabling cleanly).
(WebKit::WebContext::iconDatabasePath): Keep it empty if it was empty.
2014-12-12 Mark Rowe <mrowe@apple.com>
Fix the 32-bit build.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setPreviewTitle:]):
2014-12-12 Timothy Horton <timothy_horton@apple.com>
Fix the 32-bit build.
* UIProcess/mac/WKImmediateActionController.h:
2014-12-12 Rohit Kumar <kumar.rohit@samsung.com>
Fix Build Warning in WebKit2/UIProcess module for GTK build and WebKit2/NetworkProcess module in GTK and EFL build
https://bugs.webkit.org/show_bug.cgi?id=139535
Reviewed by Martin Robinson.
* UIProcess/API/gtk/WebKitWebView.cpp: Use UNUSED_PARAM for conditional #if case
(webkitWebViewShowNotification):
(webkitWebViewCloseNotification):
2014-12-12 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] Disable all EWK2Accessibility unit tests
https://bugs.webkit.org/show_bug.cgi?id=139577
Reviewed by Csaba Osztrogonác.
WebAccessibility functionality isn't supported by EFL WebKit2 though,
EWK2Accessibility unit tests have been tested. That's why those tests have been failed
so far.
* UIProcess/API/efl/tests/test_ewk2_accessibility.cpp:
(TEST_F):
2014-12-12 Simon Fraser <simon.fraser@apple.com>
Layer borders on contentsLayers don't correctly toggle with the rest of the borders
https://bugs.webkit.org/show_bug.cgi?id=139570
rdar://problem/18007746
Reviewed by Tim Horton.
Return nil if the color is invalid, to remove the color from the layer's
border or background.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::cgColorFromColor):
2014-12-11 Gavin Barraclough <barraclough@apple.com>
Track pages preventing suppression in WebProcessProxy using RefCounter
https://bugs.webkit.org/show_bug.cgi?id=139108
Reviewed by Benjamin Poulain.
The networking process is allowed to app nap if all web pages are also currently in app nap.
In order to detect whether any page in any process currently requires the networking process
to be active we:
- maintain hash sets in every WebProcessProxy of pages that are okay with suppression.
- if anything changes, the WebContext iterates every WebProcessProxy to recompute state.
This is all crazy - all we actually need is a simple count of the number of pages that need
to prevent the networking process from entering app nap. This patch gets us half way there -
replace the HashSet with a RefCounter. Next step will be to hoist the RefCounters from the
process proxies up to the context to do away with the iteration.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
- make sure we prevent process suppression, per current viewstate & preferences.
(WebKit::WebPageProxy::dispatchViewStateChange):
- make sure we prevent process suppression, per viewstate change.
(WebKit::WebPageProxy::updateProccessSuppressionState):
- recompute whether we need to prevent process suppression.
(WebKit::WebPageProxy::preferencesDidChange):
- when preferences change process supression may be disabled.
(WebKit::WebPageProxy::resetStateAfterProcessExited):
- we need to drop the old ref, to allow a new one to be taken when we reattach.
(WebKit::WebPageProxy::isProcessSuppressible): Deleted.
- moreged into updateProccessSuppressionState.
* UIProcess/WebPageProxy.h:
- added m_preventProcessSuppression.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
- initialize m_pagesPreventingSuppression
(WebKit::WebProcessProxy::createWebPage):
- moved to WebPageProxy::WebPageProxy
(WebKit::WebProcessProxy::addExistingWebPage):
- moved to WebPageProxy::reattachToWebProcess
(WebKit::WebProcessProxy::removeWebPage):
- now implicit; when the page is destroyed the RefPtr will release.
(WebKit::WebProcessProxy::pageSuppressibilityChanged): Deleted.
- moved to WebPageProxy::dispatchViewStateChange.
(WebKit::WebProcessProxy::pagePreferencesChanged): Deleted.
- moved to WebPageProxy::preferencesDidChange.
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::preventProcessSuppressionForPage):
- reference count m_pagesPreventingSuppression
* UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::allPagesAreProcessSuppressible):
- converted to use m_pagesPreventingSuppression.
- removed guard that meant processes with no pages would keep the networking
process from entering app nap, which made no sense.
2014-12-11 Anders Carlsson <andersca@apple.com>
Temporarily use WebCore session storage for transient local storage
https://bugs.webkit.org/show_bug.cgi?id=139574
Reviewed by Dan Bernstein.
* WebProcess/Storage/StorageNamespaceImpl.h:
Change the header guard so it won't conflict with StorageNamespaceImpl.h in WebCore.
* WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
Use the WebCore session storage for now, to avoid crashes.
2014-12-11 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r177081.
https://bugs.webkit.org/show_bug.cgi?id=139569
broke iOS video playback (Requested by eric_carlson on
#webkit).
Reverted changeset:
"Fix iOS builders for 8.0"
https://bugs.webkit.org/show_bug.cgi?id=139495
http://trac.webkit.org/changeset/177081
2014-12-11 Beth Dakin <bdakin@apple.com>
WK2: Need new SPI for Webkit clients to override default immediate action
https://bugs.webkit.org/show_bug.cgi?id=139564
-and corresponding-
rdar://problem/19225448
Reviewed by Tim Horton.
New SPI _immediateActionAnimationControllerForHitTestResult:withType:userData:
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _immediateActionAnimationControllerForHitTestResult:withType:userData:]):
Keep at ivar for the userData so that it can be passed to the new SPI.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController didPerformActionMenuHitTest:userData:]):
Always give the SPI a chance to override the animationController.
(-[WKImmediateActionController _updateImmediateActionItem]):
Need to mark WKImmediateActionTypes.h as Private.
* WebKit2.xcodeproj/project.pbxproj:
2014-12-11 Timothy Horton <timothy_horton@apple.com>
Move the preview popover to WebImmediateActionController
https://bugs.webkit.org/show_bug.cgi?id=139563
<rdar://problem/19208291>
Reviewed by Beth Dakin.
* UIProcess/mac/WKImmediateActionController.h:
Remove an unnecessary forward declaration.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController willDestroyView:]):
Clear the immediate action recognizer when the view goes away.
2014-12-11 Timothy Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
2014-12-11 Timothy Horton <timothy_horton@apple.com>
Move the preview popover to WKImmediateActionController
https://bugs.webkit.org/show_bug.cgi?id=139560
<rdar://problem/19208291>
Reviewed by Beth Dakin.
* Shared/API/c/WKImmediateActionTypes.h:
Add a link preview type.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
Pass the gesture recognizer to the WKImmediateActionController.
(-[WKView _setPreviewTitle:]):
Forward preview title changes to the WKImmediateActionController,
because that's where the preview popover lives now.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
Move WKPagePreviewViewController into its own file.
Move page preview popover related code to WKImmediateActionController.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
Compare the gesture recognizers directly instead of their views, for accuracy.
Move page preview popover related code in from WKActionMenuController.
Some of this should eventually move to WKPagePreviewViewController, but
for now for ease of transition we will move it here.
* UIProcess/mac/WKPagePreviewViewController.h: Added.
* UIProcess/mac/WKPagePreviewViewController.mm: Added.
* WebKit2.xcodeproj/project.pbxproj:
Move WKPagePreviewViewController into its own file.
2014-12-11 Tomas Popela <tpopela@redhat.com>
[GTK] Minor fixes for documentation and translations
https://bugs.webkit.org/show_bug.cgi?id=139450
Reviewed by Sergio Villar Senin.
* UIProcess/API/gtk/WebKitNavigationAction.cpp:
Fix typo in documentation.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_class_init):
Mark zoom-level and is-loading properties names for translation and
when touching them also fix the indentation style.
2014-12-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inspector Process crash when navigating to non-inspectable page
https://bugs.webkit.org/show_bug.cgi?id=139508
Reviewed by Zalan Bujtas.
The Inspector Process can still receive InspectorFrontendHost messages
even though the backend connection has been invalidated and cleared.
Only send messages if the connection exists.
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::openInNewTab):
(WebKit::WebInspectorUI::sendMessageToBackend):
2014-12-11 Yongjun Zhang <yongjun_zhang@apple.com>
WebKit2 should expose FirstVisuallyNonEmptyLayout rendering milestone.
https://bugs.webkit.org/show_bug.cgi?id=139514
Expose DidFirstVisuallyNonEmptyLayout so that WebKit2 client can listen to visually non-empty layout rendering event.
Reviewed by Dan Bernstein.
* Shared/API/Cocoa/WKRenderingProgressEvents.h: Add WKRenderingProgressEventFirstVisuallyNonEmptyLayout to WKRenderingProgressEvents.
* Shared/API/Cocoa/WKRenderingProgressEventsInternal.h: Also map kWKDidFirstVisuallyNonEmptyLayout to WKRenderingProgressEventFirstVisuallyNonEmptyLayout.
(renderingProgressEvents):
* UIProcess/API/Cocoa/WKWebView.mm:
(layoutMilestones): Map _WKRenderingProgressEventFirstVisuallyNonEmptyLayout to WebCore::DidFirstVisuallyNonEmptyLayout.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/NavigationState.mm: Add _WKRenderingProgressEventFirstVisuallyNonEmptyLayout to _WKRenderingProgressEventFirstLayout.
(WebKit::renderingProgressEvents): Map WebCore::DidFirstVisuallyNonEmptyLayout to _WKRenderingProgressEventFirstVisuallyNonEmptyLayout.
2014-12-11 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] Disable backspace key navigation
https://bugs.webkit.org/show_bug.cgi?id=136231
Reviewed by Carlos Garcia Campos.
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::performDefaultBehaviorForKeyEvent): remove handling
for backspace and <shift>backspace key combinations.
2014-12-11 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] String changes for the HTTP authentication dialog
https://bugs.webkit.org/show_bug.cgi?id=136782
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:
(webkitAuthenticationDialogInitialize): Add a title to the dialog, add
some missing mnemonics, and tweak a few strings.
2014-12-09 Jeremy Jones <jeremyj@apple.com>
Restore interface state when stopping optimized fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=139465
Reviewed by Simon Fraser.
Implement fullscreenMayReturnToInline() to request the client application show the corresponding tab.
* UIProcess/API/APIUIClient.h:
(API::UIClient::fullscreenMayReturnToInline): added
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: add declaration
* UIProcess/Cocoa/UIDelegate.h: add declaration
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate): check for responds to selector
(WebKit::UIDelegate::UIClient::fullscreenMayReturnToInline): added
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::fullscreenMayReturnToInline): added.
* UIProcess/WebPageProxy.h: add declaration
* UIProcess/ios/WebVideoFullscreenManagerProxy.h: add declaration
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::fullscreenMayReturnToInline): show the tab.
2014-12-11 Alexey Proskuryakov <ap@apple.com>
REGRESSION (Async Text Input): Text input method state is not reset when reloading a page
https://bugs.webkit.org/show_bug.cgi?id=139504
rdar://problem/19034674
Reviewed by Enrica Casucci.
WebKit2 used to look at EditorState changes and guess when to cancel a composition.
This was quite unreliable, and needlessly complicated - WebCore knows when it decides
to destroy a composition, so it now explicitly notifies the clients.
* UIProcess/API/mac/WKView.mm: (-[WKView _processDidExit]): Address crashing case too.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::discardedComposition):
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChangeSelection):
(WebKit::WebPage::discardedComposition):
* WebProcess/WebPage/WebPage.h:
2014-12-10 Anders Carlsson <andersca@apple.com>
Get rid of the storage strategy
https://bugs.webkit.org/show_bug.cgi?id=139519
Reviewed by Antti Koivisto.
* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createStorageStrategy): Deleted.
* NetworkProcess/NetworkProcessPlatformStrategies.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createStorageStrategy): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2014-12-11 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebKitNotification is defined twice
https://bugs.webkit.org/show_bug.cgi?id=139538
Reviewed by Martin Robinson.
Remove the typedef from WebKitForwardDeclarations.h since it's
already in WebKitNotification.h and include WebKitNotification.h
in WebKitWebView.h.
* UIProcess/API/gtk/WebKitForwardDeclarations.h:
* UIProcess/API/gtk/WebKitWebView.h:
2014-12-11 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move click counter logic back to WebKitWebViewBase
https://bugs.webkit.org/show_bug.cgi?id=137685
Reviewed by Martin Robinson.
It was moved to a shared class in platform to be used by both
WebKit1 and WebKit2, but it's currently only used by WebKitWebViewBase.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(ClickCounter::reset):
(ClickCounter::currentClickCountForGdkButtonEvent):
(webkitWebViewBaseButtonPressEvent):
2014-12-11 Carlos Alberto Lopez Perez <clopez@igalia.com>
[SOUP] [GTK] warning: unused parameter at NetworkProcessSoup.cpp after r177056.
https://bugs.webkit.org/show_bug.cgi?id=139534
Reviewed by Martin Robinson.
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::clearDiskCache): Comment the parameter names.
2014-12-11 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Timers might never be fired during animations
https://bugs.webkit.org/show_bug.cgi?id=139062
Reviewed by Martin Robinson.
This can happen in old/slow machines where the time to render
layers might take more than 0.016. Since the layer flush timer is
using a higher priority than WebCore timers, when scheduling all
(or several) layer flushes immediately, no other sources with
lower priority are dispatched in the main loop. We could detect if
we are scheduling layer flushes immediately for too long (100ms)
and schedule the next flush after a delay to ensure other sources
with lower priority have a chance to be dispatched. Also use a
lower priority, GDK_PRIORITY_EVENTS is too high, so we use
GDK_PRIORITY_REDRAW - 1 to ensure it's higher than WebCore timers.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk): Rename
m_lastFlushTime as m_lastImmediateFlushTime.
(WebKit::LayerTreeHostGtk::layerFlushTimerFired): Save the
fireTime before calling flushAndRenderLayers() and compute the
next flush delay based on the elapsed time using monotonically
increasing time instead of current time. Use the target delay
as next flush delay if we have scheduled flushes immediately for
more than 100ms.
(WebKit::LayerTreeHostGtk::flushAndRenderLayers): Do not save the
layer flush time here, it's done in layerFlushTimerFired() so that
we don't need to keep it as a member.
(WebKit::LayerTreeHostGtk::scheduleLayerFlush): Use global
layerFlushTimerPriority.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2014-12-10 Jaehun Lim <ljaehun.lim@samsung.com>
[CMake] Fix build after WebStorageNamespaceProvider
Unreviewed, fix build.
* CMakeLists.txt: Add WebStorageNamespaceProvider.cpp to the source list.
2014-12-10 Sanghyup Lee <sh53.lee@samsung.com>
Build fix for EFL and GTK ports since r177104
https://bugs.webkit.org/show_bug.cgi?id=139513
Reviewed by Tim Horton.
Moved WebPageProxy::installViewStateChangeCompletionHandler in PLATFORM(MAC) macro.
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
2014-12-10 Anders Carlsson <andersca@apple.com>
Switch WebKit2 over to using the storage namespace provider
https://bugs.webkit.org/show_bug.cgi?id=139509
Reviewed by Tim Horton.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
(WebKit::localStorageNamespaceMap): Deleted.
Get rid of the storage namespace map - we have a map inside WebStorageNamespaceProvider now.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createStorageStrategy):
(WebKit::WebPlatformStrategies::populatePluginCache): Deleted.
(WebKit::WebPlatformStrategies::localStorageNamespace): Deleted.
(WebKit::WebPlatformStrategies::transientLocalStorageNamespace): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
Get rid of the storage strategy.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
Set a storage namespace provider.
2014-12-10 Beth Dakin <bdakin@apple.com>
Follow-up build fix.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
2014-12-09 Jon Honeycutt <jhoneycutt@apple.com>
Null dereference performing a "TapAndAHalf" gesture in Google search field
<https://bugs.webkit.org/show_bug.cgi?id=139506>
<rdar://problem/19028828>
Reviewed by Darin Adler.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture):
Add a null check in the case that there is no word range for the
current position.
2014-12-10 Beth Dakin <bdakin@apple.com>
Speculative build fix.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
2014-12-10 Beth Dakin <bdakin@apple.com>
WK2: Add initial support for immediate actions
https://bugs.webkit.org/show_bug.cgi?id=139511
Reviewed by Tim Horton.
New enum to track immediate action types as we add them.
* Shared/API/c/WKImmediateActionTypes.h: Added.
Create an NSImmediateActionGestureRecognizer if possible and a controller.
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]):
(-[WKView initWithFrame:context:configuration:webView:]):
(-[WKView _didPerformActionMenuHitTest:userData:]):
This basic implementation of the controller will use the delegate methods to
perform an ActionMenuHitTest when relevant. Future patches will patch
_updateImmediateActionItem to use the hit test result to determine if there is any
immediate action that should be taken.
* UIProcess/mac/WKImmediateActionController.h: Added.
* UIProcess/mac/WKImmediateActionController.mm: Added.
(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController didPerformActionMenuHitTest:userData:]):
Does much of the work done in Action Menu’s prepareForMenu.
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
Does much of the work done in Action Menu’s menuNeedsUpdate.
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
Does much of the work done in Action Menu’s didCloseMenu.
(-[WKImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
Does much of the work done in Action Menu’s willOpenMenu.
(-[WKImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):
To be filled in.
(-[WKImmediateActionController _updateImmediateActionItem]):
* WebKit2.xcodeproj/project.pbxproj:
2014-12-10 Timothy Horton <timothy_horton@apple.com>
Should have copy and paste items in all text menus
https://bugs.webkit.org/show_bug.cgi?id=139510
<rdar://problem/19198388>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForText]):
Add a disabled paste menu item into the read-only text menu.
(-[WKActionMenuController _defaultMenuItemsForWhitespaceInEditableArea]):
Add a disabled copy menu item into the editable whitespace text menu.
2014-12-10 Martin Hock <mhock@apple.com>
[iOS] Add setting to ignore viewport scaling constraints
https://bugs.webkit.org/show_bug.cgi?id=139466
<rdar://problem/19200328>
Reviewed by Benjamin Poulain.
* Shared/WebPreferencesDefinitions.h: Add ignoreViewportScalingConstraints preference.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetIgnoreViewportScalingConstraints):
(WKPreferencesGetIgnoreViewportScalingConstraints):
* UIProcess/API/C/WKPreferencesRef.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2014-12-10 Timothy Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/API/mac/WKView.mm:
(-[WKView _targetWindowForMovePreparation]):
2014-12-10 Timothy Horton <timothy_horton@apple.com>
Provide SPI to asynchronously move a WKView into a window and know when it has painted
https://bugs.webkit.org/show_bug.cgi?id=139460
<rdar://problem/19135389>
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Add _prepareForMoveToWindow:withCompletionHandler:, which internally
goes through the motions of being parented in that window and calls
the completion handler once painting is done and the view is ready
to be displayed (upon which we expect the view to actually move into the window).
* UIProcess/API/mac/WKView.mm:
(-[WKView viewWillMoveToWindow:]):
If we currently have a _targetWindowForMovePreparation (and are
pretending to be in that window), avoid performing viewWillMoveToWindow:
for a different window.
(-[WKView viewDidMoveToWindow]):
(-[WKView doWindowDidChangeScreen]):
(-[WKView _intrinsicDeviceScaleFactor]):
(-[WKView _colorSpace]):
(-[WKView _targetWindowForMovePreparation]):
If we have a _targetWindowForMovePreparation, use its properties instead
of self.window's.
(-[WKView _prepareForMoveToWindow:withCompletionHandler:]):
Simulate a move into the target window, but defer sending the view state update.
Then, send the view state update after registering the completion handler.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
Rename m_viewStateChangeWantsReply to m_viewStateChangeWantsSynchronousReply.
(WebKit::WebPageProxy::installViewStateChangeCompletionHandler):
Added. Allow installing a block that will be called the next time
we get a didUpdateViewState back from the WebProcess after pushing the
current view state changes.
(WebKit::WebPageProxy::viewStateDidChange):
Adapt to the aforementioned rename.
(WebKit::WebPageProxy::dispatchViewStateChange):
Adapt to the aforementioned rename.
Send the view state change callback IDs along with SetViewState.
(WebKit::WebPageProxy::updateViewState):
Adapt to the aforementioned rename.
* UIProcess/WebPageProxy.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::activeWindow):
(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewVisibleOrOccluded):
(WebKit::PageClientImpl::isViewInWindow):
(WebKit::PageClientImpl::viewLayerHostingMode):
If we have a _targetWindowForMovePreparation, use its properties instead
of the WKView's window's.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::viewStateDidChange):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setViewState):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::viewStateDidChange):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::viewStateDidChange):
Push the callback IDs to the WebProcess, and accumulate them in TiledCoreAnimationDrawingArea.
(WebKit::TiledCoreAnimationDrawingArea::didUpdateViewStateTimerFired):
Call all of the callbacks after one runloop cycle, just like DidUpdateViewState.
2014-12-10 Anders Carlsson <andersca@apple.com>
Add session storage handling to StorageNamespaceProvider
https://bugs.webkit.org/show_bug.cgi?id=139507
Reviewed by Tim Horton.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
* WebProcess/Storage/StorageNamespaceImpl.h:
* WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
* WebProcess/Storage/WebStorageNamespaceProvider.h:
2014-12-10 Anders Carlsson <andersca@apple.com>
Implement the rest of the transient local storage namespace code
https://bugs.webkit.org/show_bug.cgi?id=139505
Reviewed by Tim Horton.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::TransientLocalStorageNamespace::create):
(WebKit::StorageManager::TransientLocalStorageNamespace::~TransientLocalStorageNamespace):
(WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::TransientLocalStorageNamespace::clearAllStorageAreas):
(WebKit::StorageManager::TransientLocalStorageNamespace::TransientLocalStorageNamespace):
Introduce a new TransientLocalStorageNamespace that's just a glorified SecurityOrigin -> StorageArea HashMap.
(WebKit::StorageManager::StorageArea::create):
Change the return type to RefPtr.
(WebKit::StorageManager::deleteEntriesForOrigin):
(WebKit::StorageManager::deleteAllEntries):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
Use lambdas instead of bind. Delete the transient local storage as well.
(WebKit::StorageManager::createTransientLocalStorageMap):
Get a transient local storage namespace and ask it for a storage area.
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
Look up the namespace from the map and create one if it doesn't exist.
(WebKit::StorageManager::deleteEntriesForOriginInternal): Deleted.
(WebKit::StorageManager::deleteAllEntriesInternal): Deleted.
* UIProcess/Storage/StorageManager.h:
2014-12-10 Anders Carlsson <andersca@apple.com>
Begin fixing transient local storage handling
https://bugs.webkit.org/show_bug.cgi?id=139503
Reviewed by Sam Weinig.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createTransientLocalStorageMap):
* UIProcess/Storage/StorageManager.h:
Add empty stub implementation of createTransientLocalStorageMap.
* UIProcess/Storage/StorageManager.messages.in:
Add CreateTransientLocalStorageMap message.
* WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
If we have a local storage namespace with a non-null top-level origin, create a
transient local storage map.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
Pass a null top-level origin to the StorageNamespaceImpl constructor.
(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):
Create a new StorageNamespaceImpl, passing the top-level origin to the constructor.
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
Pass a null top-level origin to the StorageNamespaceImpl constructor.
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
Add a top-level origin parameter.
* WebProcess/Storage/StorageNamespaceImpl.h:
(WebKit::StorageNamespaceImpl::topLevelOrigin):
Add top-level origin member and getter.
* WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
Call StorageNamespaceImpl::createTransientLocalStorageNamespace.
2014-12-10 Anders Carlsson <andersca@apple.com>
Implement WebStorageNamespaceProvider::createLocalStorageNamespace
https://bugs.webkit.org/show_bug.cgi?id=139498
Reviewed by Beth Dakin.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
Add a new overload that takes an identifier + quota. Have the old overload call the new one.
* WebProcess/Storage/StorageNamespaceImpl.h:
Add new member.
* WebProcess/Storage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace):
Call StorageNamespaceImpl::createLocalStorageNamespace.
2014-12-10 Anders Carlsson <andersca@apple.com>
Add a stubbed out WebStorageNamespaceProvider class to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139497
Reviewed by Beth Dakin.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Storage/WebStorageNamespaceProvider.cpp: Added.
(WebKit::storageNamespaceProviders):
(WebKit::WebStorageNamespaceProvider::getOrCreate):
(WebKit::WebStorageNamespaceProvider::WebStorageNamespaceProvider):
(WebKit::WebStorageNamespaceProvider::~WebStorageNamespaceProvider):
(WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
* WebProcess/Storage/WebStorageNamespaceProvider.h: Added.
2014-12-10 Enrica Casucci <enrica@apple.com>
Fix iOS builders for 8.0
https://bugs.webkit.org/show_bug.cgi?id=139495
Reviewed by Eric Carlson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mayAutomaticallyShowVideoOptimized]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
2014-12-10 Julien Isorce <j.isorce@samsung.com>
[GTK] Enable depth 32 for the RedirectedXCompositeWindow
https://bugs.webkit.org/show_bug.cgi?id=139028
On gtk/X11, the layout compositing is done in the web process.
If one needs to handle alpha with the rest of the application
then it is not enough to make to browser's window as RGBA.
The shared redirected window needs to be RGBA as well.
(The shared X composite window between UIProcess and WebProcess).
This allows an end-to-end RGBA solution when the application
wants to interact with the alpha channel at compositing time.
For example for transparent Web UI.
Reviewed by Martin Robinson.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize):
(webkitWebViewBaseConstructed):
(webkitWebViewRenderAcceleratedCompositingResults):
(webkitWebViewBaseUpdatePreferences):
(webkitWebViewBaseCreateWebPage):
* UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
* UIProcess/gtk/RedirectedXCompositeWindow.h:
2014-12-09 Claudio Saavedra <csaavedra@igalia.com> and Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GTK][WK2] Add HTML5 Notifications support
https://bugs.webkit.org/show_bug.cgi?id=61140
Reviewed by Carlos Garcia Campos.
* PlatformGTK.cmake: add new files to the build.
* UIProcess/API/gtk/WebKitForwardDeclarations.h:
* UIProcess/API/gtk/WebKitNotification.cpp: Added. New GObject used to expose information about
the notification to the API.
(webkitNotificationGetProperty):
(webkit_notification_class_init):
(webkitNotificationCreate):
(webkit_notification_get_id):
(webkit_notification_get_title):
(webkit_notification_get_body):
* UIProcess/API/gtk/WebKitNotification.h: Added.
* UIProcess/API/gtk/WebKitNotificationPermissionRequest.cpp: Added. Permission request object
for notifications.
(webkitNotificationPermissionRequestAllow):
(webkitNotificationPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitNotificationPermissionRequestDispose):
(webkit_notification_permission_request_class_init):
(webkitNotificationPermissionRequestCreate):
* UIProcess/API/gtk/WebKitNotificationPermissionRequest.h: Added.
* UIProcess/API/gtk/WebKitNotificationPermissionRequestPrivate.h: Added.
* UIProcess/API/gtk/WebKitNotificationPrivate.h: Added.
* UIProcess/API/gtk/WebKitNotificationProvider.cpp: Added. Notification provider that emits signals.
The C API allows overriding the notification providers and managers for customizing the handling of
notifications. We decided to go for a single manager and a single provider which provide more idiomatic
GObject API - signals.
(toNotificationProvider):
(showCallback):
(cancelCallback):
(WebKitNotificationProvider::~WebKitNotificationProvider):
(WebKitNotificationProvider::create):
(WebKitNotificationProvider::WebKitNotificationProvider):
(WebKitNotificationProvider::show):
(WebKitNotificationProvider::cancel):
* UIProcess/API/gtk/WebKitNotificationProvider.h: Added.
* UIProcess/API/gtk/WebKitUIClient.cpp: implemented decidePolicyForNotificationPermissionRequest.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed): initialize the notification provider.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewShowNotification): default implementation for showing the notification, currently
using GNotification, about to be ported to libnotify.
(webkit_web_view_class_init): set the default implementation for the show-notification signal.
(webkitWebViewEmitCloseNotification): emit the close-notification signal.
(webkitWebViewEmitShowNotification): emit the show-notification signal.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: list new objects and methods.
* UIProcess/API/gtk/webkit2.h: include new headers.
2014-12-10 Grzegorz Czajkowski <g.czajkowski@samsung.com>
[EFL][[WK2] test_ewk2_text_checker is failed
https://bugs.webkit.org/show_bug.cgi?id=132982
Reviewed by Gyuyoung Kim.
Insert misspelled word to the input field using execCommand instead of
input.value attribute change which stops spell check, tracked by
https://bugs.webkit.org/show_bug.cgi?id=139473.
Since text checker API tests do not verify spellchecker itself (it's being
tested by LayoutTests/editing/spelling) but rather opportunity for overriding
its functionality this patch unskips those tests in order to API coverage.
* PlatformEfl.cmake:
Unskip test_ewk2_text_checker
* UIProcess/API/efl/tests/resources/spelling_test.html:
Use document.execCommand("InsertText", false, "aa ") instead of
input.value = "aa " to trigger spellchecker.
2014-12-10 Carlos Alberto Lopez Perez <clopez@igalia.com>
REGRESSION(r177038): [SOUP] [GTK] Debug build broken
https://bugs.webkit.org/show_bug.cgi?id=139475
Reviewed by Martin Robinson.
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::clearCacheForAllOrigins): Call clearDiskCache().
(WebKit::NetworkProcess::clearDiskCache): Implement this for SOUP.
SoupCache don't seems to have API for clearing a part of the cache,
so add a FIXME note regarding that.
2014-12-09 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r177032.
* CMakeLists.txt:
2014-12-09 Alexey Proskuryakov <ap@apple.com>
Kotoeri sometimes doesn't correctly process the first chanaracter in a text field in Safari 7.1 or 6.2
https://bugs.webkit.org/show_bug.cgi?id=139459
rdar://problem/19017432
rdar://problem/19036869
Reviewed by Enrica Casucci.
When inputContext changes, notify the application. We already did this when the context
changed due to plug-ins, and this used to sort of make it work on on yahoo.co.jp,
which has plug-ins. But that was quite unreliable, as evidenced by the reproducible
cases where we didn't use an input method for the first keypress.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::notifyApplicationAboutInputContextChange):
2014-12-09 Jeremy Jones <jeremyj@apple.com>
Enable automatic optimized fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=139437
Reviewed by Simon Fraser.
Anticipate the automatic transition to optimized video fullscreen mode when deciding if the page is visible.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isShowingVideoOptimized]): Renamed. Test precondition.
(-[WKWebView _mayAutomaticallyShowVideoOptimized]): Added.
(-[WKWebView _isPlayingFullscreenOptimizedVideo]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isViewVisible): Test for optimized modes even when not in a window.
2014-12-09 Anders Carlsson <andersca@apple.com>
Add support for clearing the disk cache
https://bugs.webkit.org/show_bug.cgi?id=139458
Reviewed by Antti Koivisto.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteData):
If we're asked to clear the disk cache, do so. Clearing the cache is asynchronous,
so we make sure not to call the completion handler right away in that case.
* NetworkProcess/NetworkProcess.h:
Add clearDiskCache member function.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::clearDiskCache):
Clear the disk cache, then call the completion handler.
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::clearCacheForAllOrigins):
Call the new clearDiskCache function.
* Shared/WebsiteData/WebsiteDataTypes.h:
Add WebsiteDataTypeDiskCache.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWebsiteDataTypes):
Handle WKWebsiteDataTypeDiskCache.
2014-12-09 Myles C. Maxfield <mmaxfield@apple.com>
Delete Node::boundingBox()
https://bugs.webkit.org/show_bug.cgi?id=139333
Reviewed by Zalan Bujtas.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::elementBoundingBoxInWindowCoordinates):
Use RenderObject::absoluteBoundingBoxRect().
* WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
(WebKit::WebPage::findZoomableAreaForPoint): Use
RenderObject::absoluteBoundingBoxRect().
2014-12-09 Chris Dumez <cdumez@apple.com>
[WK2] Crash when answering notification permission request after navigating
https://bugs.webkit.org/show_bug.cgi?id=139429
<rdar://problem/18921122>
Reviewed by Andreas Kling.
When requesting a notification permission, navigating away and then
answering the permission, WebKit2 would crash. This is because upon
navigating, the request is cancelled and removed from the HashMaps
in NotificationPermissionRequestManager. When
didReceiveNotificationPermissionDecision() is later called, it would
look for the request identifier in m_idToOriginMap HashMap. As the
request was cancelled, HashMap::take() call would return null for
the SecurityOrigin*. This security origin pointer is then removed
from m_originToIDMap, but the code was failing to do a null check
first. Calling HashMap::remove(nullptr) would then crash.
This patch adds the missing null check and a layout test to cover
this case.
Test: http/tests/notifications/legacy/notification-request-permission-then-navigate.html
* WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
(WebKit::NotificationPermissionRequestManager::didReceiveNotificationPermissionDecision):
2014-12-09 Anders Carlsson <andersca@apple.com>
Implement clearing of cookies
https://bugs.webkit.org/show_bug.cgi?id=139455
Reviewed by Andreas Kling.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteData):
Handle deleting cookies by finding the right network storage session and deleting the cookies from it.
Then, send a DidDeleteWebsiteData message back.
* NetworkProcess/NetworkProcess.h:
Add new members.
* NetworkProcess/NetworkProcess.messages.in:
Add new DeleteWebsiteData message.
* Shared/WebsiteData/WebsiteDataTypes.h:
Move the website data types enum to its own file so it can be shared.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWebsiteDataTypes):
Update now that WebsiteDataTypes is its own enum.
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
removeDataModifiedSince was renamed to removeData.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::generateCallbackID):
Helper function to create a callback ID.
(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
Assert that we have no pending callbacks.
(WebKit::NetworkProcessProxy::deleteWebsiteData):
Put the completion handler in our map and message the network process.
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
Call all completion handlers.
(WebKit::NetworkProcessProxy::didDeleteWebsiteData):
Grab the completion handler and call it.
* UIProcess/Network/NetworkProcessProxy.h:
Add new members.
* UIProcess/Network/NetworkProcessProxy.messages.in:
Add DidDeleteWebsiteData callback.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeNetworkProcessAccessType):
Helper function that computes the type of process access we'd need for the given mask of
website data types.
(WebKit::WebsiteDataStore::removeData):
Gather all the network processes and message them. Use a callback aggregator object to track callbacks
so we'll call the completion handler once all callbacks have been invoked.
* UIProcess/WebsiteData/WebsiteDataStore.h:
Move WebsiteDataTypes to its own file.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
2014-12-09 Anders Carlsson <andersca@apple.com>
Give WebsiteDataStore a unique ID
https://bugs.webkit.org/show_bug.cgi?id=139448
Reviewed by Andreas Kling.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::generateIdentifier):
(WebKit::WebsiteDataStore::WebsiteDataStore):
* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::identifier):
2014-12-09 Anders Carlsson <andersca@apple.com>
Build fix.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
2014-12-09 Ting-Wei Lan <lantw44@gmail.com>
[GTK] LDFLAGS is ignored when running g-ir-scanner
https://bugs.webkit.org/show_bug.cgi?id=138832
Reviewed by Carlos Garcia Campos.
GTK+ requires libintl on FreeBSD because there is no gettext
implementation in FreeBSD libc. In order to link to libintl, which is
not located in the default search path of the linker, we need to add
the required path via the linker command line. However, LDFLAGS is
ignored when running g-ir-scanner starting from r167873, so we have
to manually pick required flags from CMAKE_SHARED_LINKER_FLAGS and
put them in correct order to prevent g-ir-scanner from linking to
the installed version of libraries.
* PlatformGTK.cmake:
2014-12-09 Jeremy Jones <jeremyj@apple.com>
Enable activating optimized fullscreen mode from standard fulscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=139137
Reviewed by Simon Fraser.
Going from standard fullscreen mode to optimized fullscreen mode requires the ability to
update the fullscreen mode and a new standard-and-optimized-fullscreen mode.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isPlayingFullscreenOptimizedVideo]):
Treat new standard-and-optimized as a kind of optimized.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h: IPC fullscreen mode changes
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm: ditto
(WebKit::WebVideoFullscreenManagerProxy::fullscreenModeChanged): dito
* WebProcess/ios/WebVideoFullscreenManager.h: ditto
* WebProcess/ios/WebVideoFullscreenManager.messages.in: ditto
* WebProcess/ios/WebVideoFullscreenManager.mm: dito
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager): ditto
(WebKit::WebVideoFullscreenManager::setFullscreenModeChanged): ditto
2014-12-08 Jaehun Lim <ljaehun.lim@samsung.com>
[EFL] Use DependenciesEFL instead of Dependencies
Unreviewed, fix simple typo.
* PlatformEfl.cmake:
2014-12-08 Beth Dakin <bdakin@apple.com>
Copy and Lookup menu items should be disabled when something is not copyable
https://bugs.webkit.org/show_bug.cgi?id=139423
Reviewed by Tim Horton.
Add allowsCopy to the WebHitTestResult.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
* Shared/WebHitTestResult.h:
(WebKit::WebHitTestResult::allowsCopy):
Set autoenablesItems to NO. It’s messing with our ability to control the enable/
disable state otherwise.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
Disable both lookup and copy when a WebHitTestResult does not allow copy.
* UIProcess/mac/WKActionMenuController.mm:
2014-12-08 Dan Bernstein <mitz@apple.com>
<rdar://problem/18905383> [iOS] Crash due to null m_webPageProxyForBackForwardListForCurrentSwipe in ViewGestureController::endSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=138750
Reviewed by Tim Horton.
The snapshot for the current gesture was being removed mid-gesture by the callback from
dispatchAfterEnsuringDrawing scheduled by the previous gesture. The fix is to ignore the
callback for a gesture if it is made after the snapshot for that gesture has already been
removed (which can happen as a result of the watchdog timer firing).
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::ViewGestureController): Initialize new member variable.
(WebKit::addLogEntry): Fixed the log message format.
(WebKit::ViewGestureController::endSwipeGesture): When dispatchAfterEnsuringDrawing() calls
us back, bail out if the gesture snapshot has already been removed.
(WebKit::ViewGestureController::removeSwipeSnapshot): Increment
m_gesturePendingSnapshotRemoval.
* UIProcess/mac/ViewGestureController.h: Added m_gesturePendingSnapshotRemoval member
variable.
2014-12-08 Anders Carlsson <andersca@apple.com>
The website data store should know all its associated pages
https://bugs.webkit.org/show_bug.cgi?id=139411
Reviewed by Tim Horton.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
* UIProcess/WebPageProxy.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::addWebPage):
(WebKit::WebsiteDataStore::removeWebPage):
* UIProcess/WebsiteData/WebsiteDataStore.h:
2014-12-08 Dan Bernstein <mitz@apple.com>
<rdar://problem/18046692> [iOS] Safari crashes at -[_NSUndoStack popAndInvoke] when trying to undo typing on closed tab
https://bugs.webkit.org/show_bug.cgi?id=139408
Reviewed by Anders Carlsson.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView undoManager]): Override to initialize if necessary and return a unique undo
manager for this instance. This ensures that undoable operations for this webview don’t get
put in other undo managers, and matches UIWebView behavior.
2014-12-08 Chris Dumez <cdumez@apple.com>
Revert r176293 & r176275
Unreviewed, revert r176293 & r176275 changing the Vector API to use unsigned type
instead of size_t. There is some disagreement regarding the long-term direction
of the API and we shouldn’t leave the API partly transitioned to unsigned type
while making a decision.
* Platform/IPC/ArgumentCoders.h:
* Platform/IPC/DataReference.h:
2014-12-08 Anders Carlsson <andersca@apple.com>
Make deleting all cookies after a given date a little more sane
https://bugs.webkit.org/show_bug.cgi?id=139409
Reviewed by Antti Koivisto.
Change all the doubles to std::chrono::system_clock::time_points instead.
* Platform/IPC/ArgumentCoders.cpp:
(IPC::ArgumentCoder<std::chrono::system_clock::time_point>::encode):
(IPC::ArgumentCoder<std::chrono::system_clock::time_point>::decode):
* Platform/IPC/ArgumentCoders.h:
* Scripts/webkit/messages.py:
(headers_for_type):
* UIProcess/API/C/WKCookieManager.cpp:
(WKCookieManagerDeleteAllCookiesModifiedAfterDate):
* UIProcess/API/C/WKCookieManager.h:
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince):
(WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedAfterDate): Deleted.
* UIProcess/WebCookieManagerProxy.h:
* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::deleteAllCookiesModifiedSince):
(WebKit::WebCookieManager::deleteAllCookiesModifiedAfterDate): Deleted.
* WebProcess/Cookies/WebCookieManager.h:
* WebProcess/Cookies/WebCookieManager.messages.in:
2014-12-08 Anders Carlsson <andersca@apple.com>
Move the callback invocation outside of the loop.
Rubber-stamped by Tim Horton.
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
2014-12-08 Anders Carlsson <andersca@apple.com>
Add a stub implementation of WebsiteDataStore::removeDataModifiedSince
https://bugs.webkit.org/show_bug.cgi?id=139406
Reviewed by Antti Koivisto.
Change _WKWebsiteDataStore to call the newly added function.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWebsiteDataTypes):
(toSystemClockTime):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeDataModifiedSince):
* UIProcess/WebsiteData/WebsiteDataStore.h:
2014-12-08 Gwang Yoon Hwang <yoon@igalia.com>
[GTK] Let DrawingArea manages setAcceleratedCompositingWindowId
https://bugs.webkit.org/show_bug.cgi?id=117230
Reviewed by Anders Carlsson.
This is a preparation patch for Threaded Coordinated Graphics.
LayerTreeHostGtk uses a native window handle to make glContext for
accelerated compositing. Therefore it is natural for DrawingArea to take
responsibility for the native window handle. And, in Coordinated
Graphics case, WebPage creates LayerTreeHost before receiving a native
window handle from UIProcess. It means we need a method to pass the
native window handle to already created LayerTreeHost.
This patch uses DrawingAreaProxy::setNativeSurfaceHandleForCompositing
instead of WebCoreProxy::setAcceleratedCompositingWindowId to set window
ID for accelerated compositing.
Also, this patch renames the setAcceleratedCompositingWindowId with a
more generic name, setNativeSurfaceHandleForCompositing.
No new tests. No change in functionality.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCreateWebPage):
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing):
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/WebPageProxy.h:
* UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::setAcceleratedCompositingWindowId): Deleted.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::nativeSurfaceHandleForCompositing):
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing):
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::glContext):
(WebKit::LayerTreeHostGtk::initialize):
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::setAcceleratedCompositingWindowId): Deleted.
2014-12-08 Philippe Normand <pnormand@igalia.com>
[GTK] UserMedia Permission Request API
https://bugs.webkit.org/show_bug.cgi?id=136449
Reviewed by Carlos Garcia Campos.
* PlatformGTK.cmake: GTK-specific new files.
* UIProcess/API/gtk/WebKitUIClient.cpp: DecidePolicy handler
implementation for UserMediaPermissionRequest.
* UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp: Added,
WebKitGTK API for UserMediaPermissionRequest, very similar to the
one used for Geolocation.
(webkitUserMediaPermissionRequestAllow):
(webkitUserMediaPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitUserMediaPermissionRequestDispose):
(webkit_user_media_permission_get_media_types):
(webkitUserMediaPermissionRequestGetProperty):
(webkit_user_media_permission_request_class_init):
(webkitUserMediaPermissionRequestCreate):
* UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h: Added.
* UIProcess/API/gtk/WebKitUserMediaPermissionRequestPrivate.h: Added.
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Expose new API
in documentation.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
* UIProcess/API/gtk/webkit2.h: Expose UserMediaPermissionRequest API.
2014-12-08 Anders Carlsson <andersca@apple.com>
Add a stubbed out method for clearing out the website data store
https://bugs.webkit.org/show_bug.cgi?id=139404
Reviewed by Antti Koivisto.
Add stubbed out method that just calls the completion handler.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
2014-12-06 Antti Koivisto <antti@apple.com>
REGRESSION (173394): Support for webcam is broken
https://bugs.webkit.org/show_bug.cgi?id=139313
Reviewed by Alexey Proskuryakov.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
Don't buffer when handling multipart/x-mixed-replace. Multiple calls to didReceiveResponseAsync break assumptions.
2014-12-08 Gwang Yoon Hwang <yoon@igalia.com>
[CoordinatedGraphics] Move CoordinatedBackingStore and CoordinatedGraphicsScene to Shared
https://bugs.webkit.org/show_bug.cgi?id=139385
Reviewed by Martin Robinson.
For the Threaded Compositor, CoordinatedBackingStore and
CoordinatedGraphicsScene should be placed at the Shared instead of
UIProcess because it can be used in the WebProcess also.
No new tests because there is no behavior change.
* PlatformEfl.cmake:
* Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp.
* Shared/CoordinatedGraphics/CoordinatedBackingStore.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h.
2014-12-08 Shivakumar JM <shiva.jm@samsung.com>
Fix build warning in WebKit2/UIProcess module.
https://bugs.webkit.org/show_bug.cgi?id=139386
Reviewed by Alexey Proskuryakov.
Fix build warning by removing unused parameter name from function
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
2014-12-07 Gwang Yoon Hwang <yoon@igalia.com>
[CoordinatedGraphics] Change the namespace of CoordinatedBackingStore and CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=139372
Reviewed by Gyuyoung Kim.
CoordinatedBackingStore and CoordinatedGraphicsScene should be declared in the WebKit namespace
instead of WebCore namespace.
* UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp:
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:
(WebKit::CoordinatedBackingStoreTile::CoordinatedBackingStoreTile):
(WebKit::CoordinatedBackingStore::rect):
(WebCore::CoordinatedBackingStoreTile::CoordinatedBackingStoreTile): Deleted.
(WebCore::CoordinatedBackingStore::rect): Deleted.
* UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
* UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h:
(WebKit::CoordinatedGraphicsScene::setViewBackgroundColor):
(WebKit::CoordinatedGraphicsScene::viewBackgroundColor):
(WebKit::CoordinatedGraphicsScene::layerByID):
(WebKit::CoordinatedGraphicsScene::rootLayer):
(WebCore::CoordinatedGraphicsScene::setViewBackgroundColor): Deleted.
(WebCore::CoordinatedGraphicsScene::viewBackgroundColor): Deleted.
(WebCore::CoordinatedGraphicsScene::layerByID): Deleted.
(WebCore::CoordinatedGraphicsScene::rootLayer): Deleted.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
(WebKit::CoordinatedLayerTreeHostProxy::coordinatedGraphicsScene):
* UIProcess/CoordinatedGraphics/WKCoordinatedSceneAPICast.h:
(WebKit::toImpl):
(WebKit::toAPI):
(toImpl): Deleted.
(toAPI): Deleted.
* UIProcess/CoordinatedGraphics/WebView.h:
2014-12-07 Dan Bernstein <mitz@apple.com>
Introduce and deploy a function that allocates and returns an instance of a soft-linked class
https://bugs.webkit.org/show_bug.cgi?id=139348
Reviewed by Anders Carlsson.
In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
avoiding the ambiguity.
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
(-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]):
(-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):
(-[WKAirPlayRoutePicker show:fromRect:]):
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[_WKVideoFileUploadItem displayImage]):
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::clone):
2014-12-06 Anders Carlsson <andersca@apple.com>
Fix build with newer versions of clang.
rdar://problem/18978733
Add missing overrides and casts.
* NetworkProcess/NetworkProcess.h:
* Shared/Downloads/DownloadAuthenticationClient.h:
(WebKit::DownloadAuthenticationClient::refAuthenticationClient): Deleted.
(WebKit::DownloadAuthenticationClient::derefAuthenticationClient): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration copyWithZone:]):
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterViewportChange): Deleted.
* UIProcess/WebPageProxy.h:
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
(WebKit::WebContentProcessMainDelegate::doPreInitializationWork): Deleted.
(WebKit::WebContentProcessMainDelegate::getConnectionIdentifier): Deleted.
(WebKit::WebContentProcessMainDelegate::getClientIdentifier): Deleted.
(WebKit::WebContentProcessMainDelegate::getClientProcessName): Deleted.
* WebProcess/IconDatabase/WebIconDatabaseProxy.h:
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::initialize):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/WebBackForwardListProxy.h:
* WebProcess/WebPage/WebInspector.h:
(WebKit::WebInspector::didClose): Deleted.
(WebKit::WebInspector::didReceiveInvalidMessage): Deleted.
* WebProcess/WebPage/WebInspectorUI.h:
(WebKit::WebInspectorUI::didClose): Deleted.
(WebKit::WebInspectorUI::didReceiveInvalidMessage): Deleted.
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
* WebProcess/WebProcess.h:
* WebProcess/ios/WebVideoFullscreenManager.h:
2014-12-06 Anders Carlsson <andersca@apple.com>
Only include TUCallSPI on Mac.
* Platform/mac/MenuUtilities.mm:
2014-12-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r176905.
https://bugs.webkit.org/show_bug.cgi?id=139337
the test case is failing in bots (Requested by anttik on
#webkit).
Reverted changeset:
"REGRESSION (173394): Support for webcam is broken"
https://bugs.webkit.org/show_bug.cgi?id=139313
http://trac.webkit.org/changeset/176905
2014-12-05 Antti Koivisto <antti@apple.com>
REGRESSION (173394): Support for webcam is broken
https://bugs.webkit.org/show_bug.cgi?id=139313
Reviewed by Alexey Proskuryakov.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
Don't buffer when handling multipart/x-mixed-replace. Multiple calls to didReceiveResponseAsync break assumptions.
2014-12-05 Yongjun Zhang <yongjun_zhang@apple.com>
Add a delegate method for didReceiveServerRedirectForProvisionalLoadForFrame.
https://bugs.webkit.org/show_bug.cgi?id=139325
Add delegate method webProcessPlugInBrowserContextController:didReceiveServerRedirectForProvisionalLoadForFrame: into
WKWebProcessPlugInLoadDelegate to listen to server side redirect in injected bundle.
Reviewed by Dan Bernstein.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(didReceiveServerRedirectForProvisionalLoadForFrame):
(setUpPageLoaderClient):
2014-12-05 Csaba Osztrogonác <ossy@webkit.org>
URTBF, EFL is happy now.
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::createNonPersistent):
2014-12-05 Mark Lam <mark.lam@apple.com>
Gardening: one more build fix for GTK builds.
* CMakeLists.txt:
2014-12-05 Csaba Osztrogonác <ossy@webkit.org>
URTBF, remove duplicated entry due to parallel buildfixing.
* CMakeLists.txt:
2014-12-05 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r176849.
* CMakeLists.txt: Added WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp.
2014-12-05 Mark Lam <mark.lam@apple.com>
Gardening: another build fix for GTK builds.
* CMakeLists.txt:
2014-12-05 Mark Lam <mark.lam@apple.com>
Gardening: more speculative build fix for GTK builds.
* CMakeLists.txt:
2014-12-05 Tim Horton <timothy_horton@apple.com>
Use the system string for telephone number menu
https://bugs.webkit.org/show_bug.cgi?id=139324
<rdar://problem/18726471>
Reviewed by Anders Carlsson.
* Platform/mac/MenuUtilities.mm:
(WebKit::menuItemTitleForTelephoneNumberGroup):
Make use of the SPI to retrieve the string if it exists.
2014-12-05 Tim Horton <timothy_horton@apple.com>
If the action menu hit test times out, a menu with a single separator appears
https://bugs.webkit.org/show_bug.cgi?id=139320
<rdar://problem/19158331>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController menuNeedsUpdate:]):
(-[WKActionMenuController _defaultMenuItems]):
Add a new "TimedOut" state, which we get into if the sync wait for
didPerformActionMenuHitTest times out. In this case, we'll drop the
separator item and give up on the menu. This way, the menu will never
have just a single separator item at the end of menuNeedsUpdate:.
2014-12-05 Mark Lam <mark.lam@apple.com>
Gardening: speculative build fix for GTK builds.
* CMakeLists.txt:
2014-12-05 Anders Carlsson <andersca@apple.com>
Fix build.
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
2014-12-05 Anders Carlsson <andersca@apple.com>
Give all web pages a website data store
https://bugs.webkit.org/show_bug.cgi?id=139317
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
Set the website data store on the window.
* UIProcess/WebContext.cpp:
(WebKit::websiteDataStoreConfiguration):
Helper function that will create the default website data store configuration for a context.
(WebKit::WebContext::WebContext):
Create a new, per-context data store.
(WebKit::WebContext::createWebPage):
If we don't have a data store filled in, use the default per-context one.
* UIProcess/WebContext.h:
* UIProcess/WebPageProxy.h:
2014-12-05 Anders Carlsson <andersca@apple.com>
Move the website data store code to a new file
https://bugs.webkit.org/show_bug.cgi?id=139312
Reviewed by Tim Horton.
It's weird to have all the website data code in the API class, so move it to a new file.
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::WebsiteDataStore):
(API::WebsiteDataStore::isNonPersistent):
(API::generateNonPersistentSessionID): Deleted.
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/WebsiteData/WebsiteDataStore.cpp: Copied from Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp.
(WebKit::generateNonPersistentSessionID):
(WebKit::WebsiteDataStore::createNonPersistent):
(WebKit::WebsiteDataStore::create):
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::~WebsiteDataStore):
* UIProcess/WebsiteData/WebsiteDataStore.h: Copied from Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h.
(WebKit::WebsiteDataStore::isNonPersistent):
(WebKit::WebsiteDataStore::sessionID):
* WebKit2.xcodeproj/project.pbxproj:
2014-12-05 Tim Horton <timothy_horton@apple.com>
Keyboard input should be disabled in the preview popover
https://bugs.webkit.org/show_bug.cgi?id=139219
<rdar://problem/19052381>
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView performKeyEquivalent:]):
(-[WKView keyUp:]):
(-[WKView keyDown:]):
(-[WKView flagsChanged:]):
There are two implementations of each of these methods in this file.
Adjust the ones that the original patch missed.
2014-12-05 Antti Koivisto <antti@apple.com>
In NetworkResourceLoader always bail out after abort()
https://bugs.webkit.org/show_bug.cgi?id=139299
Reviewed by Alexey Proskuryakov.
Invoking abort() may kill the current object. Take care to bail out after it.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):
Either make sure sendAbortingOnFailure() is called last in callbacks or the results is explicitly tested.
(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBufferMaybeAborting):
Rename and return a boolean to indicate if load should continue.
(WebKit::NetworkResourceLoader::sendBuffer): Deleted.
* NetworkProcess/NetworkResourceLoader.h:
2014-12-05 Anders Carlsson <andersca@apple.com>
Don't use PLATFORM(IOS) in non-project headers.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _allowsAlternateFullscreen]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
2014-12-05 Sam Weinig <sam@webkit.org>
WKBundleCSSStyleDeclarationRef needs to be a real API::Object
https://bugs.webkit.org/show_bug.cgi?id=139291
Reviewed by Dan Bernstein.
Change WKBundleCSSStyleDeclarationRef from being a WebCore::CSSStyleDeclaration, to
being a real API::Object. WKRetain and WKRelease require this.
* Shared/APIObject.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
* WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp: Added.
(WebKit::domHandleCache):
(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):
(WebKit::InjectedBundleCSSStyleDeclarationHandle::InjectedBundleCSSStyleDeclarationHandle):
(WebKit::InjectedBundleCSSStyleDeclarationHandle::~InjectedBundleCSSStyleDeclarationHandle):
* WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.h: Added.
* WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
(WebKit::InjectedBundlePageEditorClient::shouldApplyStyle):
2014-12-05 Anders Carlsson <andersca@apple.com>
Oops, didn't mean to commit this.
* Shared/API/Cocoa/WKFoundation.h:
2014-12-05 Anders Carlsson <andersca@apple.com>
Add an API::WebsiteDataStore object and use it for _WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=139304
Reviewed by Tim Horton.
* Shared/APIObject.h:
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Make _WKWebsiteDataStore a wrapper for API::WebsiteDataStore instead of API::Session.
* UIProcess/API/APIWebsiteDataStore.cpp: Added.
(API::generateNonPersistentSessionID):
(API::WebsiteDataStore::defaultDataStore):
(API::WebsiteDataStore::createNonPersistentDataStore):
(API::WebsiteDataStore::WebsiteDataStore):
(API::WebsiteDataStore::~WebsiteDataStore):
(API::WebsiteDataStore::isNonPersistent):
Add new WebsiteDataStore implementation. Currently it only contains the WebCore Session ID, but more will be
added to it in upcoming commits.
* UIProcess/API/APIWebsiteDataStore.h:
Add header.
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: Added.
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Platform specific file that returns the default data store configuration.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
Set the session ID from the website data store.
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(+[_WKWebsiteDataStore defaultDataStore]):
(+[_WKWebsiteDataStore nonPersistentDataStore]):
(-[_WKWebsiteDataStore dealloc]):
(-[_WKWebsiteDataStore isNonPersistent]):
(-[_WKWebsiteDataStore _apiObject]):
Update now that we wrap an API::WebsiteDataStore instead.
* UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h:
(WebKit::wrapper):
Update for API::Session -> API::WebsiteDataStore change.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
2014-12-05 David Kilzer <ddkilzer@apple.com>
FeatureDefines.xcconfig: Workaround bug in Xcode 5.1.1 when defining ENABLE_WEB_REPLAY
<http://webkit.org/b/139286>
Reviewed by Daniel Bates.
* Configurations/FeatureDefines.xcconfig: Switch back to using
PLATFORM_NAME to workaround a bug in Xcode 5.1.1 on 10.8.
2014-12-05 Anders Carlsson <andersca@apple.com>
Make WebPageProxy hold on to a SessionID instead of an API:Session
https://bugs.webkit.org/show_bug.cgi?id=139302
Reviewed by Sam Weinig.
This is in preparation for adding API::WebsiteDataStore. Currently we have to keep the
Session ID and the WebsiteDataStore separate because we still need to support toggling private browsing.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetSession):
* UIProcess/API/C/WKSessionRef.cpp:
(WKSessionCreate):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(+[_WKWebsiteDataStore nonPersistentDataStore]):
* UIProcess/APISession.cpp:
(API::generateID):
(API::Session::Session):
(API::Session::createEphemeral):
(API::Session::legacyPrivateSession): Deleted.
(API::Session::create): Deleted.
* UIProcess/APISession.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createWebPage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setSessionID):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setSession): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::sessionID):
2014-12-05 Eric Carlson <eric.carlson@apple.com>
[iOS] allow host application to opt-out of alternate fullscreen pt. 2
https://bugs.webkit.org/show_bug.cgi?id=139227
Reviewed by Jer Noble and Anders Carlsson.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h: Add bool param to setupFullscreenWithID.
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: Ditto.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Ditto.
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Pass new parameter
to SetupFullscreenWithID.
2014-12-04 Anders Carlsson <andersca@apple.com>
Add missing includes in preparation for making toAPI require that it's passed an API::Object
https://bugs.webkit.org/show_bug.cgi?id=139278
Reviewed by Tim Horton.
* UIProcess/API/C/WKAuthenticationChallenge.cpp:
* UIProcess/API/C/WKAuthenticationDecisionListener.cpp:
* UIProcess/API/C/WKContext.cpp:
* UIProcess/API/C/WKDownload.cpp:
* UIProcess/API/C/WKFrame.cpp:
* UIProcess/API/C/WKGeolocationManager.cpp:
* UIProcess/API/C/WKInspector.cpp:
* UIProcess/API/C/WKPage.cpp:
* UIProcess/GenericCallback.h:
* UIProcess/Notifications/WebNotificationProvider.cpp:
* UIProcess/WebContextConnectionClient.cpp:
* UIProcess/WebContextInjectedBundleClient.cpp:
* UIProcess/WebCookieManagerProxyClient.cpp:
* UIProcess/WebDatabaseManagerProxyClient.cpp:
* UIProcess/WebFindClient.cpp:
* UIProcess/WebFormClient.cpp:
* UIProcess/WebIconDatabaseClient.cpp:
* UIProcess/WebPageContextMenuClient.cpp:
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
* WebProcess/InjectedBundle/InjectedBundleClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
2014-12-04 Anders Carlsson <andersca@apple.com>
Make API::String copy the underlying strings if needed, for thread safety
https://bugs.webkit.org/show_bug.cgi?id=139261
Reviewed by Sam Weinig.
* Shared/API/c/WKString.cpp:
(WKStringCreateWithUTF8CString):
(WKStringCreateWithJSString):
(WKStringCopyJSString):
Move the implementations from API::String and directly into the API functions.
* Shared/APIString.h:
Add a create overload that takes an rvalue reference. Call it from the create overload
that takes an lvalue reference, but explicitly copy the string.
We call isolatedCopy() again on the string in the rvalue reference overload, but that is a no-op
if the string can be sent to another thread. Add assertions in the String constructor that we can
send the string to another thread.
2014-12-04 Beth Dakin <bdakin@apple.com>
Clients disabling action menus sometimes still invoke action menu behaviors
https://bugs.webkit.org/show_bug.cgi?id=139270
-and corresponding-
rdar://problem/19147218
Reviewed by Tim Horton.
By default, we will keep a single item in the action menu up until the point where
_state == ActionMenuState::Ready. So by checking _state here, we are preventing
clients from opting out of our choice to wait. Ideally we would always still wait
for the Ready state, but this will get the best behavior in the mean time.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _updateActionMenuItems]):
2014-12-04 Antti Koivisto <antti@apple.com>
REGRESSION (r173468): Cannot step in WebInspector
https://bugs.webkit.org/show_bug.cgi?id=139260
Reviewed by Alexey Proskuryakov.
Inspector defers all loads and starts a nested runloop when it hits a breakpoint. When continuing it undefers the loads.
If the script execution was triggered from the didFinishLoading callback of the main resource then the main resource would
already be in the finished state in the network process side and setDefersLoading(false) message would end up restarting its load.
Since loads are not meant to restart the generated callbacks would assert or crash the web process when handled in the next
nested inspector runloop.
Fix by taking care that cleaned up NetworkResourceLoaders are always removed from the loader map of
the NetworkConnectionToWebProcess and so can't end up handling late messages.
No test, this requires JS debugger to trigger.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader):
This is now the only way to remove resource loaders.
It is called from NetworkResourceLoader::cleanup only.
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier):
Calling abort removes the resource loader (since it calls cleanup) so no need to do it explicitly anymore.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
We are guaranteed to be reffed by NetworkConnectionToWebProcess until cleanup so the explicit ref/deref can be removed.
(WebKit::NetworkResourceLoader::cleanup):
Call to NetworkConnectionToWebProcess::didCleanupResourceLoader to make the loader unreachable.
* NetworkProcess/NetworkResourceLoader.h:
(WebKit::NetworkResourceLoader::identifier):
2014-12-04 Timothy Horton <timothy_horton@apple.com>
Fix the 32-bit build.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setTextIndicator:fadeOut:animationCompletionHandler:]):
2014-12-04 Tim Horton <timothy_horton@apple.com>
TextIndicator::createWithSelectionInFrame does synchronous IPC in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139252
<rdar://problem/19140827>
Reviewed by Anders Carlsson.
It turns out contentsToScreen requires sync IPC in Mac WebKit2, which we
really don't want to be doing here (especially since the UI process will often
be sitting in waitForAndDispatchImmediately waiting for didPerformActionMenuHitTest).
Go back to keeping TextIndicator rects in "window" coordinates and do the conversion
in each of the WebKits instead of trying to share that code.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
* UIProcess/API/mac/WKView.mm:
(-[WKView _setTextIndicator:fadeOut:animationCompletionHandler:]):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
(WebKit::FindController::drawRect):
Adjust to the WebCore changes.
2014-12-04 Anders Carlsson <andersca@apple.com>
Simplify StorageManager callback functions
https://bugs.webkit.org/show_bug.cgi?id=139257
Reviewed by Antti Koivisto.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getOrigins):
(WebKit::StorageManager::getStorageDetailsByOrigin):
(WebKit::callCallbackFunction): Deleted.
(WebKit::StorageManager::getOriginsInternal): Deleted.
(WebKit::StorageManager::getStorageDetailsByOriginInternal): Deleted.
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
(WebKit::didGetKeyValueStorageOrigins): Deleted.
(WebKit::didGetStorageDetailsByOrigin): Deleted.
2014-12-04 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r176794.
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::fileCreationTime):
(WebKit::fileModificationTime):
2014-12-03 Anders Carlsson <andersca@apple.com>
Add a way to delete local storage origins modified after a given date
https://bugs.webkit.org/show_bug.cgi?id=139249
Reviewed by Tim Horton.
Also change LocalStorageDatabaseTracker to hold on to WTF::Optional time_t values
instead of treating missing values as zero.
* UIProcess/LocalStorageDetails.h:
* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::fileCreationTime):
(WebKit::fileModificationTime):
(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::details):
* UIProcess/Storage/LocalStorageDatabaseTracker.h:
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebKeyValueStorageManager.cpp:
(WebKit::didGetStorageDetailsByOrigin):
2014-12-04 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
[EFL][WK2] Add ewk API to allow accepting a specific TLS certificate for a specific host
https://bugs.webkit.org/show_bug.cgi?id=131160
Reviewed by Gyuyoung Kim.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::allowSpecificHTTPSCertificateForHost):
(ewk_context_tls_certificate_for_host_allow):
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/ewk_context_private.h:
* UIProcess/API/efl/tests/test_ewk2_ssl.cpp:
2014-12-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r176457.
https://bugs.webkit.org/show_bug.cgi?id=139247
More iOS breakage (Requested by andersca on #webkit).
Reverted changeset:
"Fix iOS build."
http://trac.webkit.org/changeset/176457
2014-12-03 Beth Dakin <bdakin@apple.com>
<input> elements get whitespace action menu instead of editable text menu
https://bugs.webkit.org/show_bug.cgi?id=139241
-and corresponding-
rdar://problem/19072083
Reviewed by Sam Weinig.
Add isOverTextInsideFormControlElement to WebHitTestResult.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
* Shared/WebHitTestResult.h:
(WebKit::WebHitTestResult::isOverTextInsideFormControlElement):
Offer the text menus for text inside form controls.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItems]):
We should disallow shadow content in the hit test. This is the default and it is
how context menus behave. We originally wanted to text inside shadow content so
that we could find the text, but the new function I added to HitTestResult will
allow that.
* WebProcess/WebPage/mac/WebPageMac.mm:
Adjust to the fact that we don’t hit test shadow content any more.
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::lookupTextAtLocation):
(WebKit::WebPage::focusAndSelectLastActionMenuHitTestResult):
2014-12-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r176489.
https://bugs.webkit.org/show_bug.cgi?id=139242
More iOS breakage (Requested by andersca on #webkit).
Reverted changeset:
"Unreviewed, iOS build fix after r176452."
http://trac.webkit.org/changeset/176489
2014-12-03 Tim Horton <timothy_horton@apple.com>
Implement action menus for tel: URLs
https://bugs.webkit.org/show_bug.cgi?id=139240
<rdar://problem/19115662>
Reviewed by Anders Carlsson.
* Shared/API/c/WKActionMenuTypes.h:
Add a new type.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
Rename this function as it will work for both mailto and tel URLs.
Adjust it to use contextForView:.
(-[WKActionMenuController _clearActionMenuState]):
(-[WKActionMenuController menuNeedsUpdate:]):
(-[WKActionMenuController _defaultMenuItems]):
Don't check the menu type when going to interact with _currentActionContext.
We'll only have a _currentActionContext if we have a data detected item,
and there are multiple menu types that end up using DDActionContext.
2014-12-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r176452 and r176559.
https://bugs.webkit.org/show_bug.cgi?id=139239
Broke iOS (Requested by andersca on #webkit).
Reverted changesets:
"Remove alignment code from IPC coders"
https://bugs.webkit.org/show_bug.cgi?id=138963
http://trac.webkit.org/changeset/176452
"[WK2] SecComp buildfix after r176452"
https://bugs.webkit.org/show_bug.cgi?id=139081
http://trac.webkit.org/changeset/176559
2014-12-03 Tim Horton <timothy_horton@apple.com>
Keyboard input should be disabled in the preview popover
https://bugs.webkit.org/show_bug.cgi?id=139219
<rdar://problem/19052381>
Reviewed by Anders Carlsson.
Make sure that keyboard input, Quick Look, etc. are blocked in preview popovers
and WKThumbnailViews. Also block the fake mouseMove events that originate in
the Web process upon scrolling, because we were missing those despite blocking
ordinary mouseMove events.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
Rename _ignoresNonWheelMouseEvents to _ignoresNonWheelEvents, because it will
apply not only to mouse events but also key events, Quick Look events, menu
preparation events, swipe events, etc.
Add _ignoresAllEvents, which means the same thing as _ignoresNonWheelEvents
with the addition of ignoring scrollWheel events.
(-[WKView scrollWheel:]):
(-[WKView swipeWithEvent:]):
(-[WKView mouseMoved:]):
(-[WKView mouseDown:]):
(-[WKView mouseUp:]):
(-[WKView mouseDragged:]):
Adjust to the new name.
(-[WKView performKeyEquivalent:]):
(-[WKView keyUp:]):
(-[WKView keyDown:]):
(-[WKView flagsChanged:]):
(-[WKView quickLookWithEvent:]):
(-[WKView prepareForMenu:withEvent:]):
(-[WKView willOpenMenu:withEvent:]):
(-[WKView didCloseMenu:withEvent:]):
Block all of these events as well as those we were previously blocking.
(-[WKView _setIgnoresAllEvents:]):
(-[WKView _setIgnoresNonWheelMouseEvents:]):
(-[WKView _setIgnoresNonWheelEvents:]):
(-[WKView _ignoresNonWheelEvents]):
(-[WKView _ignoresAllEvents]):
* UIProcess/API/mac/WKViewInternal.h:
Adjust to the new names and the addition of ignoresAllEvents.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKPagePreviewViewController loadView]):
Adjust to the new name.
(-[WKActionMenuController prepareForMenu:withEvent:]):
Move bailing from prepareForMenu: up to WKView.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _ignoresNonWheelMouseEvents]): Deleted.
(-[WKWebView _setIgnoresNonWheelMouseEvents:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
Adjust to the new name (without "mouse" in it).
* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _viewWasUnparented]):
(-[_WKThumbnailView _viewWasParented]):
Explicitly tell WKView to disable event handling while thumbnailed,
instead of having WKView special-case thumbnail views internally.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents):
* UIProcess/WebPageProxy.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::shouldDispatchFakeMouseMoveEvents):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::shouldDispatchFakeMouseMoveEvents):
(WebKit::WebPage::setShouldDispatchFakeMouseMoveEvents):
* WebProcess/WebPage/WebPage.messages.in:
Plumb shouldDispatchFakeMouseMoveEvents from the UI process to the Web process
and through to WebKit2's ChromeClient implementation.
2014-12-03 Anders Carlsson <andersca@apple.com>
Remove ENABLE_UI_PROCESS_STORAGE define, it's always 1.
Rubber-stamped by Beth Dakin.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::localStorageNamespace):
(WebKit::WebPlatformStrategies::transientLocalStorageNamespace):
(WebKit::WebPlatformStrategies::sessionStorageNamespace):
2014-12-03 Anders Carlsson <andersca@apple.com>
Use an @autoreleasepool instead of NSAutoreleasePool.
Rubber-stamped by Tim Horton.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
2014-12-03 Dan Bernstein <mitz@apple.com>
REGRESSION(r176687): Caused webkit2 test assertion failure crashes in WebKit::WebPage::willStartDrag()
https://bugs.webkit.org/show_bug.cgi?id=139224
Reviewed by Alexey Proskuryakov.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mouseEventSyncForTesting): Wait for the UI process to start dragging if
needed before handling the event.
2014-12-03 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] outdated comment
https://bugs.webkit.org/show_bug.cgi?id=137801
Reviewed by Carlos Garcia Campos.
Remove a comment that is no longer correct.
* NetworkProcess/gtk/NetworkProcessMainGtk.cpp:
2014-12-02 Conrad Shultz <conrad_shultz@apple.com>
Don't block menu highlighting when presenting a page preview
https://bugs.webkit.org/show_bug.cgi?id=139217
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _previewURLFromActionMenu:]):
Defer popover presentation to the next turn of the runloop.
2014-12-02 Timothy Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/mac/WebContextMac.mm:
2014-12-02 Dan Bernstein <mitz@apple.com>
<rdar://problem/18441138> [iOS] Text selection in WKWebView with WKSelectionGranularityCharacter only works in the most recent WKWebView to load
https://bugs.webkit.org/show_bug.cgi?id=139211
Reviewed by Anders Carlsson.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView becomeFirstResponder]): Override to activate the text selection for when
becoming first resopnder.
(-[WKContentView resignFirstResponder]): Deactiavte the text selection when resigning first
responder. This ensures that if another WKWebView becomes first responder, and it uses
block selection, we don’t end up with two active selection views.
(-[WKContentView useSelectionAssistantWithMode:]): Only activate the text selection if this
is the first responder. This ensures that loading content into a non-first-responder
WKWebView doesn‘t deactivate the text selection in the current first responder.
2014-12-02 Alexey Proskuryakov <ap@apple.com>
http/tests/appcache/main-resource-fallback-for-network-error-crash.html can break subsequent tests
https://bugs.webkit.org/show_bug.cgi?id=139149
Reviewed by Anders Carlsson.
This changes API behavior. I think that it's OK, because existing behavior made no sense.
We used to delete caches from disk, but they were still active in memory. Now we also
obsolete them in memory, so documents that use a cache still work, but new ones don't
pick one up.
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::deleteAllEntries): Use the new WebCore function
that properly deletes caches.
2014-12-02 Tim Horton <timothy_horton@apple.com>
Remove a SnowLeopard-era quirk for QuickLook
https://bugs.webkit.org/show_bug.cgi?id=139208
<rdar://problem/19121822>
Reviewed by Alexey Proskuryakov.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::needsQuickLookResourceCachingQuirks): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::needsQuickLookResourceCachingQuirks): Deleted.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-12-02 Beth Dakin <bdakin@apple.com>
Build fix.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForLink]):
2014-12-02 Beth Dakin <bdakin@apple.com>
More build fix.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForLink]):
2014-12-02 Dan Bernstein <mitz@apple.com>
REGRESSION: Dragging selected text changes the selection
https://bugs.webkit.org/show_bug.cgi?id=139110
Reviewed by Simon Fraser.
After it sent the UI process the message to start dragging, the Web process handled mouse
move events that had already been in flight, interpreting them as a drag to start a new
selection. This is fixed by ignoring any mouse events received after asking the UI process
to start dragging.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setDragImage): Send the new DidStartDrag message back to the Web
process, so that it stops ignoring mouse events.
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::startDrag): Call the new WebPage::willStartDrag, so that it starts
ignoring mouse events.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize new member variable.
(WebKit::WebPage::mouseEvent): Don’t handle the event if we have asked the UI process to
start dragging.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::willStartDrag): Added. Sets new member variable m_isStartingDrag to true.
(WebKit::WebPage::didStartDrag): Added. Handles the message from the UI process by setting
m_isStartingDrag back to false.
* WebProcess/WebPage/WebPage.messages.in: Added DidStartDrag.
2014-12-02 Beth Dakin <bdakin@apple.com>
Should use standardQuickLookMenuItem for apps that don't implement customizations
https://bugs.webkit.org/show_bug.cgi?id=139193
-and corresponding-
rdar://problem/18944696
Reviewed by Anders Carlsson.
New SPI will allow clients to opt-out of the standardQuickLookMenuItem. By
default, opt in.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _shouldUseStandardQuickLookPreview]):
* UIProcess/mac/WKActionMenuController.mm:
Use [NSMenuItem standardQuickLookMenuItem] unless the client has requested
otherwise.
(-[WKActionMenuController _defaultMenuItemsForLink]):
Delegate methods to set up the standardQuickLookMenuItem.
(-[WKActionMenuController menuItem:viewAtScreenPoint:]):
(-[WKActionMenuController menuItem:previewItemAtPoint:]):
(-[WKActionMenuController menuItem:preferredEdgeForPoint:]):
2014-12-02 Tim Horton <timothy_horton@apple.com>
TextIndicator can get stuck (especially if we don't get LUNotificationPopoverWillClose when we should)
https://bugs.webkit.org/show_bug.cgi?id=139175
<rdar://problem/19072236>
Reviewed by Beth Dakin.
* UIProcess/API/mac/WKView.mm:
(-[WKView scrollWheel:]):
(-[WKView mouseDown:]):
Work around <rdar://problem/19086993> by always explicitly clearing the
active text indicator in mouseDown: and scrollWheel:.
This way, even if you manage to get a text indicator that outlives the
Look Up popover (or find-in-page, or whatever), it will be dismissed
by clicking or scrolling the view.
2014-12-02 Anders Carlsson <andersca@apple.com>
Remove visited link handling from PageGroup
https://bugs.webkit.org/show_bug.cgi?id=139185
Reviewed by Sam Weinig.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::populateVisitedLinks): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:
2014-12-01 Anders Carlsson <andersca@apple.com>
Remove WKBundleRemoveAllVisitedLinks
https://bugs.webkit.org/show_bug.cgi?id=139163
Reviewed by Sam Weinig.
WKBundleRemoveAllVisitedLinks has been a no-op since at least Yosemite; get rid of it.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleRemoveAllVisitedLinks): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::removeAllVisitedLinks): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:
2014-12-02 Eva Balazsfalvi <evab.u-szeged@partner.samsung.com>
Fix class was previously declared as a struct warnings
https://bugs.webkit.org/show_bug.cgi?id=139131
Reviewed by Csaba Osztrogonác.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* UIProcess/CoordinatedGraphics/WebViewClient.h:
2014-12-02 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] ewk_view_scale_set() doesn't work correctly
https://bugs.webkit.org/show_bug.cgi?id=139109
Reviewed by Csaba Osztrogonác.
When ewk_view_scale_set() is called, it has only updated a scale factor which is maintained by WebPageProxy.
It causes WebPageProxy unsynchronized with PageViewportController's scale factor. That's why wrong scale
behavior has occured through ewk_view_scale_set(). Besides zooming has similar problem as well.
Thus this patch updates m_pageScaleFactor of PageViewportController as well as prohibits to change the scale
factor through viewport meta tag update. Because ewk_view_scale_set() means that user wants to set a specific
value to scale factor of current viewport.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::updateScaleToPageViewportController):
Set m_initiallyFitToViewport to false. And call didChangeContentsVisibility() with new scale and scale position.
* UIProcess/API/efl/EwkView.h:
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_scale_set):
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::didCommitLoad):
Set m_initiallyFitToViewport to true in order to fit content to viewport size by default.
Initizlize content position with (0, 0).
(WebKit::PageViewportController::pageTransitionViewportReady):
Do not update scale when m_initiallyFitToViewport is false.
(WebKit::PageViewportController::syncVisibleContents):
Return false when syncVisibleContents is failed.
(WebKit::PageViewportController::didChangeViewportAttributes):
Do not update scale when m_initiallyFitToViewport is false.
(WebKit::PageViewportController::applyScaleAfterRenderingContents):
If syncVisibleContents() is failed, m_pageScaleFactor should be restored with previous value.
If not, new scale factor isn't applied though, PageViewportController uses it as own scale factor.
(WebKit::PageViewportController::updateMinimumScaleToFit):
Do not update scale when m_initiallyFitToViewport is false or m_hadUserInteraction is true.
* UIProcess/CoordinatedGraphics/PageViewportController.h:
(WebKit::PageViewportController::setInitiallyFitToViewport):
2014-11-20 Jeffrey Pfau <jpfau@apple.com>
Add cancelable version of willSendRequest
https://bugs.webkit.org/show_bug.cgi?id=138987
Reviewed by Anders Carlsson.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
2014-12-01 Conrad Shultz <conrad_shultz@apple.com>
Clients need a way to explicitly set the title of a page preview
https://bugs.webkit.org/show_bug.cgi?id=139161
Reviewed by Beth Dakin.
This implicitly assumes that only one page preview can be associate with a given WKView at a time.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _setPreviewTitle:]):
Wrap -[WKActionMenuController setPreviewTitle:]
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
Add ivars for the title and the title text field (previously not independently exposed).
(-[WKPagePreviewViewController previewTitle]):
Accessor.
(-[WKPagePreviewViewController setPreviewTitle:]):
Accessor; set the text field's string value.
(-[WKPagePreviewViewController loadView]):
Adopt the _titleTextField ivar; assume that if a client has explicitly set the previewTitle then we don't
need to ask for it again.
(-[WKActionMenuController setPreviewTitle:]):
Wrap -[WKPagePreviewViewController setPreviewTitle:].
2014-12-01 Anders Carlsson <andersca@apple.com>
Make WebKit2 work slightly better with garbage collection
https://bugs.webkit.org/show_bug.cgi?id=139159
<rdar://problem/19108390>
Reviewed by Dan Bernstein.
* Shared/Cocoa/APIObject.mm:
(API::Object::ref):
(API::Object::deref):
Call CFRetain/CFRelease to prevent the memory from being collected.
(API::Object::newObject):
Call CFRetain under GC so we'll prevent memory from being collected prematurely.
2014-12-01 Tim Horton <timothy_horton@apple.com>
Implement yellow highlight for WebKit1 data detectors
https://bugs.webkit.org/show_bug.cgi?id=138956
<rdar://problem/18992185>
Reviewed by Beth Dakin.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
(WebKit::FindController::drawRect):
Adjust to the fact that TextIndicator keeps screen-relative rects.
2014-12-01 Anders Carlsson <andersca@apple.com>
Remove old site specific quirks code that was added in 2009
https://bugs.webkit.org/show_bug.cgi?id=139141
Reviewed by Antti Koivisto.
* NetworkProcess/RemoteNetworkingContext.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::needsSiteSpecificQuirks): Deleted.
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::needsSiteSpecificQuirks): Deleted.
2014-12-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Crash in WebInspectorClient::hideHighlight when page is destroyed
https://bugs.webkit.org/show_bug.cgi?id=139136
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::hideHighlight):
Speculatively fix by null-checking the main frame which
can be null during page destruction.
2014-11-30 Jaehun Lim <ljaehun.lim@samsung.com>
[EFL] Add eldbus to the library list
https://bugs.webkit.org/show_bug.cgi?id=139120
Reviewed by Gyuyoung Kim.
Fix undefined reference errors for eldbus APIs.
* PlatformEfl.cmake:
2014-11-29 Anders Carlsson <andersca@apple.com>
Crash when calling WKPageClose on the originated page from within createNewPage callback
https://bugs.webkit.org/show_bug.cgi?id=139099
<rdar://problem/19052564>
Reviewed by Sam Weinig.
Null check the namespace ID.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::cloneSessionStorageNamespaceInternal):
2014-11-28 Tim Horton <timothy_horton@apple.com>
Stale userData is handed to WKView _actionMenuItemsForHitTestResult under prepareForMenu
https://bugs.webkit.org/show_bug.cgi?id=139069
<rdar://problem/19075587>
Reviewed by Sam Weinig.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController wkView:willHandleMouseDown:]):
(-[WKActionMenuController didCloseMenu:withEvent:]):
(-[WKActionMenuController _clearActionMenuState]):
Previously, _userData was not being cleared in didCloseMenu, so a subsequent
action menu invocation would end up sending stale userData to _actionMenuItemsForHitTestResult.
Additionally, factor all of the cleanup code out into _clearActionMenuState,
and call it from both wkView:willHandleMouseDown: and didCloseMenu:withEvent:.
2014-11-26 Timothy Horton <timothy_horton@apple.com>
DataDetectors PageOverlay callbacks are never called
https://bugs.webkit.org/show_bug.cgi?id=139067
<rdar://problem/19086676>
Reviewed by Anders Carlsson.
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Encode/decode the PageOverlay ID.
2014-11-28 Simon Fraser <simon.fraser@apple.com>
Allow clients of the WKRenderLayerRef C SPI to connect layer trees across frame boundaries
https://bugs.webkit.org/show_bug.cgi?id=139021
Reviewed by Dan Bernstein.
Add WKRenderLayerGetFrameContentsLayer which returns a WKRenderLayerRef for
the content document of a RenderWidget, if its has one (e.g. frames, iframes
and <object> with document contents).
* Shared/API/c/WKRenderLayer.cpp:
(WKRenderLayerGetFrameContentsLayer):
* Shared/API/c/WKRenderLayer.h:
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebRenderLayer.cpp:
(WebKit::WebRenderLayer::create):
(WebKit::WebRenderLayer::WebRenderLayer):
* Shared/WebRenderLayer.h:
(WebKit::WebRenderLayer::frameContentsLayer):
2014-11-28 Csaba Osztrogonác <ossy@webkit.org>
[WK2] SecComp buildfix after r176452
https://bugs.webkit.org/show_bug.cgi?id=139081
Reviewed by Antti Koivisto.
* Shared/linux/SeccompFilters/SeccompBroker.cpp:
(WebKit::SeccompBrokerClient::dispatch):
(WebKit::SeccompBroker::runLoop):
2014-11-28 Csaba Osztrogonác <ossy@webkit.org>
Fix -Wc++11-narrowing error in SeccompFilters.cpp
https://bugs.webkit.org/show_bug.cgi?id=139079
Reviewed by Carlos Garcia Campos.
* Shared/linux/SeccompFilters/SeccompFilters.cpp:
(WebKit::SeccompFilters::addRule):
* Shared/linux/SeccompFilters/SeccompFilters.h:
2014-11-28 Csaba Osztrogonác <ossy@webkit.org>
[WK2] SecComp buildfix after r168605 and r168999
https://bugs.webkit.org/show_bug.cgi?id=139080
Reviewed by Carlos Garcia Campos.
* Shared/linux/SeccompFilters/SyscallPolicy.cpp:
(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):
2014-11-27 Ryuan Choi <ryuan.choi@navercorp.com>
[EFL] Remove E_Dbus dependency
https://bugs.webkit.org/show_bug.cgi?id=136355
Reviewed by Gyuyoung Kim.
* UIProcess/API/efl/ewk_main.cpp: Added init/shutdown for eldbus.
(WebKit::EwkMain::initialize):
(WebKit::EwkMain::finalize):
(WebKit::EwkMain::shutdownInitializedEFLModules):
2014-11-25 Anders Carlsson <andersca@apple.com>
Remove user content handling from PageGroup
https://bugs.webkit.org/show_bug.cgi?id=139051
Reviewed by Antti Koivisto.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addUserScript):
(WebKit::InjectedBundle::addUserStyleSheet):
(WebKit::InjectedBundle::removeUserScript):
(WebKit::InjectedBundle::removeUserStyleSheet):
(WebKit::InjectedBundle::removeUserScripts):
(WebKit::InjectedBundle::removeUserStyleSheets):
(WebKit::InjectedBundle::removeAllUserContent):
Talk to the user content controller from the passed in WebPageGroupProxy.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
Create the WebPageGroupProxy before creating the page so we can get its user content controller and
pass it to the page configuration if necessary.
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::userContentController):
New function that lazily creates a user content controller. We don't want to create this eagerly since
it's not used with the modern API.
(WebKit::WebPageGroupProxy::addUserStyleSheet):
(WebKit::WebPageGroupProxy::addUserScript):
(WebKit::WebPageGroupProxy::removeAllUserStyleSheets):
(WebKit::WebPageGroupProxy::removeAllUserScripts):
(WebKit::WebPageGroupProxy::removeAllUserContent):
Call through to the user content controller.
* WebProcess/WebPage/WebPageGroupProxy.h:
Add an m_userContentController member.
2014-11-25 Ting-Wei Lan <lantw44@gmail.com>
[GTK] Use LD_LIBRARY_PATH to make g-ir-scanner use the newly-built
version of libraries when running the temporary executable
https://bugs.webkit.org/show_bug.cgi?id=138833
Reviewed by Carlos Garcia Campos.
This patch modifies LD_LIBRARY_PATH to make sure the dynamic linker
find the correct version of libraries when running the temporary
executable to generate the .gir file.
* PlatformGTK.cmake:
2014-11-25 Csaba Osztrogonác <ossy@webkit.org>
[EFL] REGRESSION(r176514): It made performance tests fail
https://bugs.webkit.org/show_bug.cgi?id=139037
Reviewed by Gyuyoung Kim.
* WebProcess/efl/WebProcessMainEfl.cpp: Don't try to load/shutdown eail if eailLibraryPath() is empty.
2014-11-24 Eva Balazsfalvi <evab.u-szeged@partner.samsung.com>
Remove Qt cruft related to tap higlighting
https://bugs.webkit.org/show_bug.cgi?id=139030
Reviewed by Andreas Kling.
* CMakeLists.txt:
* WebProcess/WebPage/TapHighlightController.cpp: Removed.
* WebProcess/WebPage/TapHighlightController.h: Removed.
2014-11-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed, EFL build fix since r176530.
* UIProcess/CoordinatedGraphics/WebView.cpp: Replace pointer with reference.
(WebKit::WebView::processDidExit):
2014-11-24 Benjamin Poulain <bpoulain@apple.com>
[WK2] Remove some bad stuff from WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=138896
Reviewed by Sam Weinig.
The state loadStateAtProcessExit does not seem to be used anywhere.
The state urlAtProcessExit only exists to forward the url from
WebPageProxy::resetStateAfterProcessExited() to the coordinated graphics code
WebView::processDidExit().
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::processDidExit):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::urlAtProcessExit): Deleted.
(WebKit::WebPageProxy::loadStateAtProcessExit): Deleted.
2014-11-24 Ryuan Choi <ryuan.choi@navercorp.com>
[EFL] REGRESSION(176066): It made all performance tests fail
https://bugs.webkit.org/show_bug.cgi?id=138865
Reviewed by Csaba Osztrogonác.
Since r176066, there are crash because evas_gl_surface is destroyed with
invalid evas_gl instance after evas_gl is destroyed.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::~EwkView):
2014-11-24 Alberto Garcia <berto@igalia.com>
Webkit2 doesnt build on powerpc 32 bits
https://bugs.webkit.org/show_bug.cgi?id=130837
Reviewed by Carlos Garcia Campos.
Check if libatomic is needed in order to use std::atomic, and add
it to the list of WebKit2 libraries.
* PlatformGTK.cmake:
2014-11-24 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.7.2 release.
* gtk/NEWS: Add release notes for 2.7.2.
2014-11-24 Krzysztof Czech <k.czech@samsung.com>
[EFL] Utilize Eail library to support accessibility in EFL
https://bugs.webkit.org/show_bug.cgi?id=137742
Reviewed by Gyuyoung Kim.
Initialize EAIL module so that all the listeners and atk-bridge started properly.
Dynamic loading of EAIL help us to avoid elementary dependencies in WebKit.
* WebProcess/efl/WebProcessMainEfl.cpp:
(eailLibraryPath): reads path provided by ACCESSIBILITY_EAIL_LIBRARY_PATH variable.
(eail):
2014-11-24 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebKitWebView is created with the wrong web context when using webkit_web_view_new_with_related_view()
https://bugs.webkit.org/show_bug.cgi?id=139023
Reviewed by Sergio Villar Senin.
The WebKitWebContext is a construct only property, so it's always
set to the default value when not provided, during the
construction. When a related-view is used to create a new web view
we should ensure that the same web context is used for the new web
view, instead of the default. We should also ignore any web
context given as construct parameter if a related view is alos provided.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewConstructed): Do not set the context to the default
one when not given during construction.
(webkitWebViewSetProperty): Only use the default web context when
not provided as construct parameter and there isn't a related view.
2014-11-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add API to override the default local storage directory
https://bugs.webkit.org/show_bug.cgi?id=138828
Reviewed by Gustavo Noronha Silva.
Add WebKitWebContext:local-storage-directory construct-only
property. If not provided the default will be used.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkitWebContextConstructed):
(webkit_web_context_class_init):
2014-11-23 Conrad Shultz <conrad_shultz@apple.com>
Page previews should have titles
https://bugs.webkit.org/show_bug.cgi?id=139020
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare -_titleForPreviewOfURL:.
* UIProcess/API/mac/WKView.mm:
(-[WKView _titleForPreviewOfURL:]):
Stub implementation.
* UIProcess/mac/WKActionMenuController.mm:
(+[WKPagePreviewViewController previewPadding]):
Account for the title height.
(-[WKPagePreviewViewController loadView]):
Set correct autoresize masks on some views; create and configure a title view that is
horizontally and vertically centered.
(-[WKActionMenuController pagePreviewViewController:titleForPreviewOfURL:]):
WKPagePreviewViewControllerDelegate method; wrap -[WKView _titleForPreviewOfURL:].
2014-11-22 Simon Fraser <simon.fraser@apple.com>
Extend WKRenderObject and WKRenderLayer with some more useful data
https://bugs.webkit.org/show_bug.cgi?id=139006
Reviewed by Sam Weinig.
Implement WKRenderLayerGetBackingStoreMemoryEstimate,
WKRenderObjectCopyTextSnippet and WKRenderObjectGetTextLength for improved
RenderLayer and RenderTree display in clients of the C SPI.
* Shared/API/c/WKRenderLayer.cpp:
(WKRenderLayerGetBackingStoreMemoryEstimate):
* Shared/API/c/WKRenderLayer.h:
* Shared/API/c/WKRenderObject.cpp:
(WKRenderObjectCopyTextSnippet):
(WKRenderObjectGetTextLength):
* Shared/API/c/WKRenderObject.h:
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebRenderLayer.cpp:
(WebKit::WebRenderLayer::create):
(WebKit::WebRenderLayer::WebRenderLayer):
* Shared/WebRenderLayer.h:
(WebKit::WebRenderLayer::backingStoreMemoryEstimate):
* Shared/WebRenderObject.cpp:
(WebKit::WebRenderObject::create):
(WebKit::WebRenderObject::WebRenderObject):
* Shared/WebRenderObject.h:
(WebKit::WebRenderObject::textSnippet):
(WebKit::WebRenderObject::textLength):
2014-11-21 Jer Noble <jer.noble@apple.com>
Support multiple signatures of diagnostic logging.
https://bugs.webkit.org/show_bug.cgi?id=138690
Reviewed by Anders Carlsson.
Extend the existing WKBundlePageDiagnosticLoggingClient interface by deprecating
the original logDiagnosticMessage client method in V1 and adding three new,
explicit client methods.
* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h:
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp:
(WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessageDeprecated):
Renamed from logDiagnosticMessage().
(WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage): Pass to the client.
(WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessageWithResult): Ditto.
(WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessageWithValue): Ditto.
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::logDiagnosticMessage): Deleted.
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp: Added.
(WebKit::WebDiagnosticLoggingClient::WebDiagnosticLoggingClient): Simple constructor.
(WebKit::WebDiagnosticLoggingClient::~WebDiagnosticLoggingClient): Simple destructor.
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage): Pass to the injected bundle.
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult): Ditto.
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue): Ditto.
* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h: Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize the new client.
2014-11-21 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed, EFL build fix since r176459.
r176459 removed Timer parameter in timer callbacks only for Mac port.
So this patch applies it to remaining classes for EFL port.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::displayTimerFired):
* UIProcess/API/efl/EwkView.h:
* UIProcess/efl/TextCheckerClientEfl.cpp:
(TextCheckerClientEfl::TextCheckerClientEfl):
(TextCheckerClientEfl::languagesUpdateTimerFired):
(TextCheckerClientEfl::spellCheckingSettingChangeTimerFired):
* UIProcess/efl/TextCheckerClientEfl.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2014-11-21 Chris Dumez <cdumez@apple.com>
Unreviewed, iOS build fix after r176462.
Fix include path to TextIndicator.h to include WebCore/
as it was moved.
* UIProcess/ios/PageClientImplIOS.mm:
2014-11-21 Chris Dumez <cdumez@apple.com>
Unreviewed, iOS build fix after r176452.
dencodeFixedLengthData() now only takes 2 arguments instead of
3.
* Shared/ios/QuickLookDocumentData.cpp:
(WebKit::QuickLookDocumentData::decode):
2014-11-21 Zalan Bujtas <zalan@apple.com>
Simple line layout: Add "show simple line layout debug borders" setting to MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=138981
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _simpleLineLayoutDebugBordersEnabled]):
(-[WKPreferences _setSimpleLineLayoutDebugBordersEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2014-11-21 Eric Carlson <eric.carlson@apple.com>
WebVideoFullscreenManagerProxy must clear pointers when invalidated
https://bugs.webkit.org/show_bug.cgi?id=138982
Reviewed by Jer Noble.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy): Call invalidate.
(WebKit::WebVideoFullscreenManagerProxy::invalidate): Set WebVideoFullscreenModel and
WebVideoFullscreenChangeObserver to NULL.
2014-11-21 Timothy Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/API/mac/WKView.mm:
(-[WKView mouseDown:]):
2014-11-21 Beth Dakin <bdakin@apple.com>
The preview action menu item should not have a title
https://bugs.webkit.org/show_bug.cgi?id=138989
-and corresponding-
rdar://problem/19061959
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]):
2014-11-21 Conrad Shultz <conrad_shultz@apple.com>
Page previews should have a margin.
https://bugs.webkit.org/show_bug.cgi?id=138990
Reviewed by Beth Dakin.
Enclose the WKWebView (or client-supplied preview view) in a container slightly larger
than the preview view. Adjust sizing code to accommodate the margin.
* UIProcess/mac/WKActionMenuController.mm:
(+[WKPagePreviewViewController previewPadding]):
Return the total amount of fixed padding surrounding the preview
(-[WKPagePreviewViewController loadView]):
Store the actual previewView in an ivar so that clients can distinguish it from the container
view; wrap the preview in a container view; set frames appropriately.
(-[WKActionMenuController _createPreviewPopover]):
Update to reflect method rename; supplement the popover size with the fixed padding.
(-[WKActionMenuController _preferredPopoverSizeWithPreviewPadding:]):
Renamed from -_preferredPopoverSize; account for the fixed padding when computing the preferred size.
(-[WKActionMenuController _clearPreviewPopover]):
Use the previewView ivar instead of the view controller's view.
(-[WKActionMenuController pagePreviewViewControllerWasClicked:]):
Ditto.
(-[WKActionMenuController _preferredPopoverSize]): Deleted.
2014-11-21 Tim Horton <timothy_horton@apple.com>
REGRESSION (r176415): Can get stuck, unable to invoke any DataDetectors popovers
https://bugs.webkit.org/show_bug.cgi?id=138955
<rdar://problem/19056442>
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView mouseDown:]):
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController wkView:willHandleMouseDown:]):
(-[WKActionMenuController didCloseMenu:withEvent:]):
(-[WKActionMenuController menuNeedsUpdate:]):
Keep track of whether we have called shouldUseActionsWithContext: on a
DDActionContext; if we get a mouseDown without having seen didCloseMenu:
(and thus don't properly pair the shouldUseActionsWithContext: with a didUseActions),
tear down the old DDActionContext before proceeding.
2014-11-21 Tim Horton <timothy_horton@apple.com>
REGRESSION (r176351): Parts of apple.com/contact aren't Lookup-able
​https://bugs.webkit.org/show_bug.cgi?id=138960
<rdar://problem/19056715>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
(-[WKActionMenuController _defaultMenuItemsForMailtoLink]): Deleted.
Use DataDetectors SPI instead of an explicit blacklist.
2014-11-21 Tim Horton <timothy_horton@apple.com>
Crashes while encoding a TextIndicator with no contentImageWithHighlight
https://bugs.webkit.org/show_bug.cgi?id=138984
<rdar://problem/19063717>
Reviewed by Sam Weinig.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
encodeImage doesn't deal with null images, so handle that case gracefully.
2014-11-21 Tim Horton <timothy_horton@apple.com>
REGRESSION (r176351): Parts of apple.com/contact aren't Lookup-able
https://bugs.webkit.org/show_bug.cgi?id=138960
<rdar://problem/19056715>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Blacklist contact results, because they don't have useful menus. If we
bail before setting up _currentActionContext, we'll still allow fallthrough
to ordinary text actions, avoiding mysterious failure when a contact is detected.
This doesn't break the case that r176351 was intended to fix,
because in that case we were detecting e.g. addresses.
2014-11-21 Tim Horton <timothy_horton@apple.com>
Move TextIndicator{Window} to WebCore
https://bugs.webkit.org/show_bug.cgi?id=138954
<rdar://problem/18992185>
Some adjustments by Csaba Osztrogonác.
Reviewed by Anders Carlsson.
* CMakeLists.txt:
Remove TextIndicator.cpp.
* Scripts/webkit/messages.py:
(struct_or_class):
(headers_for_type):
Tell messages.py that TextIndicatorData is a struct, and comes from TextIndicator.h.
* Shared/WebCoreArgumentCoders.h:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
Add argument coders for TextIndicatorData.
* Shared/DictionaryPopupInfo.h:
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/gtk/PageClientImpl.cpp:
* UIProcess/API/mac/WKView.mm:
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/CoordinatedGraphics/WebView.h:
* UIProcess/CoordinatedGraphics/WebView.cpp:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/WKContentView.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
* UIProcess/mac/WKActionMenuController.mm:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
* WebProcess/WebPage/FindController.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:
Adjust to TextIndicator and TextIndicatorWindow's new home.
2014-11-21 Tim Horton <timothy_horton@apple.com>
REGRESSION (r176238): Mailto links are getting preloaded, which results in a compose window
https://bugs.webkit.org/show_bug.cgi?id=138972
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
Only preload links.
2014-11-21 Anders Carlsson <andersca@apple.com>
Remove the Timer parameters from timer callbacks
https://bugs.webkit.org/show_bug.cgi?id=138974
Reviewed by Antti Koivisto.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::bufferingTimerFired):
* NetworkProcess/NetworkResourceLoader.h:
* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::WebMemorySampler):
(WebKit::WebMemorySampler::sampleTimerFired):
(WebKit::WebMemorySampler::stopTimerFired):
* Shared/WebMemorySampler.h:
* Shared/mac/RemoteLayerBackingStoreCollection.h:
* Shared/mac/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection):
(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::PluginView):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::layerFlushTimerFired):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::processSuspensionCleanupTimerFired):
(WebKit::WebProcess::nonVisibleProcessCleanupTimerFired):
* WebProcess/WebProcess.h:
2014-11-21 Anders Carlsson <andersca@apple.com>
Remove the Timer parameters from timer callbacks
https://bugs.webkit.org/show_bug.cgi?id=138974
Reviewed by Antti Koivisto.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::bufferingTimerFired):
* NetworkProcess/NetworkResourceLoader.h:
* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::WebMemorySampler):
(WebKit::WebMemorySampler::sampleTimerFired):
(WebKit::WebMemorySampler::stopTimerFired):
* Shared/WebMemorySampler.h:
* Shared/mac/RemoteLayerBackingStoreCollection.h:
* Shared/mac/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection):
(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::PluginView):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::layerFlushTimerFired):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::processSuspensionCleanupTimerFired):
(WebKit::WebProcess::nonVisibleProcessCleanupTimerFired):
* WebProcess/WebProcess.h:
2014-11-21 Antti Koivisto <antti@apple.com>
Fix iOS build.
* Shared/ios/QuickLookDocumentData.cpp:
(WebKit::QuickLookDocumentData::encode):
2014-11-21 Antti Koivisto <antti@apple.com>
Remove alignment code from IPC coders
https://bugs.webkit.org/show_bug.cgi?id=138963
Reviewed by Anders Carlsson.
Alignment code achieves nothing except making the messages somewhat bigger.
* Platform/IPC/ArgumentCoders.cpp:
(IPC::ArgumentCoder<CString>::encode):
(IPC::ArgumentCoder<CString>::decode):
(IPC::ArgumentCoder<String>::encode):
(IPC::decodeStringText):
* Platform/IPC/ArgumentCoders.h:
(IPC::SimpleArgumentCoder::encode):
(IPC::SimpleArgumentCoder::decode):
* Platform/IPC/ArgumentDecoder.cpp:
(IPC::ArgumentDecoder::initialize):
(IPC::ArgumentDecoder::bufferIsLargeEnoughToContain):
(IPC::ArgumentDecoder::decodeFixedLengthData):
(IPC::ArgumentDecoder::decodeVariableLengthByteArray):
(IPC::ArgumentDecoder::decodeNumber):
(IPC::ArgumentDecoder::decode):
(IPC::roundUpToAlignment): Deleted.
(IPC::alignedBufferIsLargeEnoughToContain): Deleted.
(IPC::ArgumentDecoder::alignBufferPosition): Deleted.
(IPC::decodeValueFromBuffer): Deleted.
* Platform/IPC/ArgumentDecoder.h:
(IPC::ArgumentDecoder::isInvalid):
(IPC::ArgumentDecoder::markInvalid):
(IPC::ArgumentDecoder::bufferIsLargeEnoughToContain):
* Platform/IPC/ArgumentEncoder.cpp:
(IPC::ArgumentEncoder::ArgumentEncoder):
(IPC::ArgumentEncoder::grow):
(IPC::ArgumentEncoder::encodeFixedLengthData):
(IPC::ArgumentEncoder::encodeVariableLengthByteArray):
(IPC::ArgumentEncoder::encode):
* Platform/IPC/ArgumentEncoder.h:
(IPC::ArgumentEncoder::buffer):
(IPC::ArgumentEncoder::mutableBuffer):
* Platform/IPC/DataReference.cpp:
(IPC::SharedBufferDataReference::encode):
* Platform/IPC/MessageEncoder.cpp:
(IPC::MessageEncoder::setIsSyncMessage):
(IPC::MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::sendOutgoingMessage):
2014-11-21 Anders Carlsson <andersca@apple.com>
Make memoryCache() return a reference
https://bugs.webkit.org/show_bug.cgi?id=138939
Reviewed by Antti Koivisto.
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didCacheResource):
* WebProcess/ResourceCache/WebResourceCacheManager.cpp:
(WebKit::WebResourceCacheManager::getCacheOrigins):
(WebKit::WebResourceCacheManager::clearCacheForOrigin):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::terminate):
(WebKit::WebProcess::didClose):
(WebKit::WebProcess::clearResourceCaches):
(WebKit::getWebCoreMemoryCacheStatistics):
(WebKit::WebProcess::setMemoryCacheDisabled):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel):
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformSetCacheModel):
2014-11-21 Daniel Bates <dabates@apple.com>
[iOS] WebKit2 fails to build with public SDK due to missing SPI from CFNetwork, QuartzCore, MediaPlayer, XPC
https://bugs.webkit.org/show_bug.cgi?id=138930
Reviewed by Anders Carlsson.
* NetworkProcess/mac/NetworkResourceLoaderMac.mm: Remove forward declaration for NSCachedURLResponse
methods as this functionality was incorporated into CFNetworkSPI.h, which is included by this file.
* Platform/mac/LayerHostingContext.mm: Moved QuartzCore forward declarations from this file to file
QuartzCoreSPI.h and included header QuartzCoreSPI.h.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: Include header XPCSPI.h.
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: Remove forward declarations of
XPC SPI since these declarations are part of XCPSPI.h, which is included by header XPCServiceEntryPoint.h.
* UIProcess/API/Cocoa/WKWebView.mm: Remove unnecessary include of header QuartzCore/CARenderServer.h
as it will be included by header QuartzCoreSPI.h.
* UIProcess/Network/NetworkProcessProxy.cpp: Include header XPCSPI.h when building for iOS with
USE(XPC_SERVICES) enabled.
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm: Include header MediaPlayerSPI.h instead of including
MediaPlayer private headers directly. Also sort the list of #import directives.
2014-11-20 Dan Bernstein <mitz@apple.com>
Build fix.
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
(-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]): Cast the return value of
[getMPAudioVideoRoutingPopoverControllerClass() alloc] to resolve ambiguity about which
-initWithType: we are calling.
(-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]): Cast to resolve ambiguity.
(-[WKAirPlayRoutePicker show:fromRect:]): Cast for consistency.
2014-11-20 Benjamin Poulain <bpoulain@apple.com>
Remove the remaining vestiges of minimal-ui
https://bugs.webkit.org/show_bug.cgi?id=138890
Reviewed by Sam Weinig.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::didFinishDocumentLoad): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::savePageState):
(WebKit::WebPage::restorePageState):
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::updateViewportSizeForCSSViewportUnits):
2014-11-20 Beth Dakin <bdakin@apple.com>
Preview popover needs minimum and maximum sizes
https://bugs.webkit.org/show_bug.cgi?id=138943
-and corresponding-
rdar://problem/18904651
Reviewed by Tim Horton.
Quick follow-up to get the right screen.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController largestPopoverSize]):
2014-11-20 Beth Dakin <bdakin@apple.com>
Preview popover needs minimum and maximum sizes
https://bugs.webkit.org/show_bug.cgi?id=138943
-and corresponding-
rdar://problem/18904651
Reviewed by Tim Horton.
This patch enforces minimum and maximum popover sizes. If the popover needs to be
sized up to be above the minimum, it will end up covering some of the
_hitTestResult, so we should compute a new origin rect based on the original
event location.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
(-[WKActionMenuController _previewURLFromActionMenu:]):
(-[WKActionMenuController _createPreviewPopover]):
(-[WKActionMenuController largestPopoverSize]):
(-[WKActionMenuController _preferredPopoverSize]):
(-[WKActionMenuController _preferredSizeForPopoverPresentedFromOriginRect:]): Deleted.
2014-11-20 Conrad Shultz <conrad_shultz@apple.com>
Clicks on previews can be recognized multiple times
https://bugs.webkit.org/show_bug.cgi?id=138944
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKPagePreviewViewController _clickRecognized:]):
Only dispatch the delegate message on the appropriate gesture recognizer state transition.
2014-11-20 Conrad Shultz <conrad_shultz@apple.com>
Clients should be able to customize preview click behavior
https://bugs.webkit.org/show_bug.cgi?id=138940
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare -_handleClickInPreviewView:URL:.
* UIProcess/API/mac/WKView.mm:
(-[WKView _handleClickInPreviewView:URL:]):
Extracted from -[WKActionMenuController pagePreviewViewControllerWasClicked:].
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController pagePreviewViewControllerWasClicked:]):
Extract code to -[WKView _handleClickInPreviewView:URL:].
2014-11-20 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r176420 to fix non Apple builds.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):
2014-11-20 Anders Carlsson <andersca@apple.com>
WebPlugInClient::m_webPage can never be null, use a reference
https://bugs.webkit.org/show_bug.cgi?id=138937
Reviewed by Andreas Kling.
* WebProcess/WebCoreSupport/WebPlugInClient.cpp:
(WebKit::WebPlugInClient::WebPlugInClient):
(WebKit::WebPlugInClient::shouldAutoStartFromOrigin):
* WebProcess/WebCoreSupport/WebPlugInClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):
* WebProcess/WebProcess.h:
2014-11-20 Tim Horton <timothy_horton@apple.com>
TextIndicator should have getters for TextIndicator::Data properties
https://bugs.webkit.org/show_bug.cgi?id=138920
Reviewed by Beth Dakin.
Instead of having clients reach into the data(), add getters.
Remove frameRect(), which is identical to the textBoundingRectInWindowCoordinates getter.
Remove declarations for draw/drawContentImage, which were already removed.
* Shared/TextIndicator.cpp:
(WebKit::TextIndicator::frameRect): Deleted.
* Shared/TextIndicator.h:
(WebKit::TextIndicator::textBoundingRectInWindowCoordinates):
(WebKit::TextIndicator::textRectsInBoundingRectCoordinates):
(WebKit::TextIndicator::contentImageScaleFactor):
(WebKit::TextIndicator::contentImageWithHighlight):
(WebKit::TextIndicator::contentImage):
* UIProcess/mac/TextIndicatorWindow.mm:
(-[WKTextIndicatorView initWithFrame:textIndicator:margin:]):
(-[WKTextIndicatorView presentWithCompletionHandler:]):
(WebKit::TextIndicatorWindow::setTextIndicator):
2014-11-20 Tim Horton <timothy_horton@apple.com>
Cancel DataDetectors menu earlier if we know it can't be presented
https://bugs.webkit.org/show_bug.cgi?id=138922
<rdar://problem/18950441>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
If we end up with a menu with no items, don't change selection or anything.
(-[WKActionMenuController menuNeedsUpdate:]):
Move our call to shouldUseActionsWithContext earlier, to menuNeedsUpdate,
and use a bigger hammer (removeAllItems).
2014-11-20 Tim Horton <timothy_horton@apple.com>
Don't use a TextIndicator BounceAndCrossfade transition if the selection highlight is never shown
https://bugs.webkit.org/show_bug.cgi?id=138919
<rdar://problem/19042207>
Reviewed by Beth Dakin.
* Shared/TextIndicator.h:
(WebKit::TextIndicator::presentationTransition):
(WebKit::TextIndicator::setPresentationTransition):
Add getter and setter pair.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
If the selection highlight will never be shown because there's only a single menu item,
use a normal bounce animation instead of bounce + crossfade.
2014-11-20 Beth Dakin <bdakin@apple.com>
Invalid message WebPageProxy.DidPerformDictionaryLookup on Google stocks result
https://bugs.webkit.org/show_bug.cgi?id=138568
-and corresponding-
rdar://problem/18904600
Reviewed by Tim Horton.
Skip images for lookup.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupForRange):
2014-11-20 Daniel Bates <dabates@apple.com>
[iOS] Add more ENABLE({TOUCH_EVENTS, IOS_TOUCH_EVENTS})-guards in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=138928
Reviewed by Simon Fraser.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
2014-11-20 Anders Carlsson <andersca@apple.com>
Add -[WKWebView loadData:MIMEType:textEncodingName:baseURL:]
https://bugs.webkit.org/show_bug.cgi?id=138929
<rdar://problem/18683802>
Reviewed by Dan Bernstein.
Also, re-implement -[WKWebView loadHTMLString:baseURL:] in terms of this newly added function
and assume a UTF-8 encoding. This matches what Legacy WebKit does.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadHTMLString:baseURL:]):
(-[WKWebView loadData:MIMEType:textEncodingName:baseURL:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadData):
* UIProcess/WebPageProxy.h:
2014-11-20 Antti Koivisto <antti@apple.com>
Remove alignment code from cache coders
https://bugs.webkit.org/show_bug.cgi?id=138927
Failed to land this file.
* NetworkProcess/cache/NetworkCacheCoders.cpp:
(WebKit::NetworkCacheCoder<CString>::encode):
(WebKit::NetworkCacheCoder<CString>::decode):
(WebKit::NetworkCacheCoder<String>::encode):
(WebKit::decodeStringText):
(WebKit::NetworkCacheCoder<WebCore::CertificateInfo>::encode):
(WebKit::NetworkCacheCoder<WebCore::CertificateInfo>::decode):
* NetworkProcess/cache/NetworkCacheCoders.h:
2014-11-20 Antti Koivisto <antti@apple.com>
Remove alignment code from cache coders
https://bugs.webkit.org/show_bug.cgi?id=138927
Reviewed by Anders Carlsson.
Alignment code doesn't do anything useful, wastes space and produces wrong results
if the encoder and decoder buffers don't have the same 8-byte alignment.
* NetworkProcess/cache/NetworkCacheDecoder.cpp:
(WebKit::NetworkCacheDecoder::NetworkCacheDecoder):
(WebKit::NetworkCacheDecoder::bufferIsLargeEnoughToContain):
(WebKit::NetworkCacheDecoder::decodeFixedLengthData):
(WebKit::NetworkCacheDecoder::decodeNumber):
(WebKit::roundUpToAlignment): Deleted.
(WebKit::alignedBufferIsLargeEnoughToContain): Deleted.
(WebKit::NetworkCacheDecoder::alignBufferPosition): Deleted.
* NetworkProcess/cache/NetworkCacheDecoder.h:
(WebKit::NetworkCacheDecoder::currentOffset):
(WebKit::NetworkCacheDecoder::isInvalid):
(WebKit::NetworkCacheDecoder::markInvalid):
(WebKit::NetworkCacheDecoder::bufferIsLargeEnoughToContain):
* NetworkProcess/cache/NetworkCacheEncoder.cpp:
(WebKit::NetworkCacheEncoder::grow):
(WebKit::NetworkCacheEncoder::encodeFixedLengthData):
(WebKit::NetworkCacheEncoder::encodeNumber):
(WebKit::roundUpToAlignment): Deleted.
* NetworkProcess/cache/NetworkCacheEncoder.h:
2014-11-20 Csaba Osztrogonác <ossy@webkit.org>
[GTK] URTBF after r176363.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::setTextIndicator):
* UIProcess/API/gtk/PageClientImpl.h:
2014-11-19 Yongjun Zhang <yongjun_zhang@apple.com>
Don't track sub-resources that are started after main frame progress has completed.
https://bugs.webkit.org/show_bug.cgi?id=138582
Reviewed by Sam Weinig.
After main frame progress has finished, starting loading a sub-resource shouldn't affect
UI process's view of page loading status (i.e., the page has already completed loading
and the progress shouldn't change). To achive that, don't track the subresources that
are started after the main frame has finished, except for those triggered by user interaction.
* WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp: Notify WebPage that the main frame progress
has started or finished.
(WebKit::WebProgressTrackerClient::progressStarted):
(WebKit::WebProgressTrackerClient::progressFinished):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::addResourceRequest): Don't track the resource request if it is initiated after
the main frame is loaded and it is not triggered by user interaction.
(WebKit::WebPage::removeResourceRequest):
* WebProcess/WebPage/WebPage.h: Rename m_networkResourceRequestIdentifiers to m_trackedNetworkResourceRequestIdentifiers.
(WebKit::WebPage::setMainFrameProgressCompleted):
2014-11-19 Sun-woo Nam <sunny.nam@samsung.com>
[EFL] Fix build failure since r176363.
https://bugs.webkit.org/show_bug.cgi?id=138903
Reviewed by Gyuyoung Kim.
The parameter for animation on setTextIndicator() was removed on 'PageClient' class.
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::setTextIndicator):
* UIProcess/CoordinatedGraphics/WebView.h:
2014-11-19 Timothy Horton <timothy_horton@apple.com>
Try to fix the iOS build
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performDictionaryLookupForSelection):
(WebKit::WebPage::performDictionaryLookupForRange):
2014-11-19 Timothy Horton <timothy_horton@apple.com>
Fix the 32-bit build
* UIProcess/mac/TextIndicatorWindow.mm:
(WebKit::TextIndicatorWindow::setTextIndicator):
2014-11-19 Tim Horton <timothy_horton@apple.com>
Add an optional entry transition (from selection highlight) to TextIndicator
https://bugs.webkit.org/show_bug.cgi?id=138856
<rdar://problem/18840128>
Reviewed by Anders Carlsson.
* Shared/TextIndicator.cpp:
(WebKit::outsetIndicatorRectIncludingShadow):
(WebKit::TextIndicator::createWithRange):
(WebKit::snapshotSelectionWithHighlight):
(WebKit::TextIndicator::createWithSelectionInFrame):
(WebKit::TextIndicator::frameRect):
(WebKit::TextIndicator::Data::encode):
(WebKit::TextIndicator::Data::decode):
Remove TextIndicator::draw and related functions; drawing is handled entirely
by the TextIndicatorWindow now, and TextIndicator just stores the required data.
Unify outsetIndicatorRectIncludingShadow.
Add an argument to createWithRange/createWithSelectionInFrame to indicate
if the TextIndicator should transition from the selection highlight to
the yellow bubble.
If we're doing the transition, paint the selection into a second bitmap,
without forcing the text to black and without hiding the blue highlight.
Encode/decode the second bitmap.
* Shared/TextIndicator.h:
* UIProcess/mac/TextIndicatorWindow.h:
* UIProcess/mac/TextIndicatorWindow.mm:
(-[WKTextIndicatorView initWithFrame:textIndicator:margin:transitionFromSelectionColor:]):
(-[WKTextIndicatorView presentWithCompletionHandler:]):
(-[WKTextIndicatorView hideWithCompletionHandler:]):
(-[WKTextIndicatorView isFlipped]):
(WebKit::TextIndicatorWindow::TextIndicatorWindow):
(WebKit::TextIndicatorWindow::setTextIndicator):
(WebKit::TextIndicatorWindow::closeWindow):
(WebKit::TextIndicatorWindow::startFadeOutTimerFired):
Re-implement the bounce animation using CoreAnimation instead of
the WKSI-based WKWindowBounceAnimation*.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupForSelection):
(WebKit::WebPage::performDictionaryLookupOfCurrentSelection):
(WebKit::WebPage::performDictionaryLookupForRange):
(WebKit::WebPage::performActionMenuHitTestAtLocation):
* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
Use the aforementioned transition animation for performDictionaryLookupOfCurrentSelection,
the context menu lookup item, and for Data Detectors.
2014-11-19 Anders Carlsson <andersca@apple.com>
Add a version of API::Data::createWithoutCopying that takes an NSData
https://bugs.webkit.org/show_bug.cgi?id=138893
Reviewed by Dan Bernstein.
* Shared/APIData.h:
* Shared/Cocoa/APIDataCocoa.mm: Added.
(API::Data::createWithoutCopying):
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
(releaseNSData): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]):
2014-11-19 Beth Dakin <bdakin@apple.com>
Invoking an action menu on a selection should result in the text menu
https://bugs.webkit.org/show_bug.cgi?id=138892
-and corresponding-
rdar://problem/18996776
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItems]):
2014-11-19 Anders Carlsson <andersca@apple.com>
Fix iOS build.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
2014-11-19 Anders Carlsson <andersca@apple.com>
Rename two Cocoa-only .cpp files to .mm.
Rubber-stamped by Sam Weinig.
* Shared/APIWebArchive.mm: Renamed from Source/WebKit2/Shared/APIWebArchive.cpp.
* Shared/APIWebArchiveResource.mm: Renamed from Source/WebKit2/Shared/APIWebArchiveResource.cpp.
* WebKit2.xcodeproj/project.pbxproj:
2014-11-19 Beth Dakin <bdakin@apple.com>
Data detected results with no menu items should not fall through to regular text
action menus
https://bugs.webkit.org/show_bug.cgi?id=138887
-and corresponding-
rdar://problem/18971616
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItems]):
2014-11-19 Daniel Bates <dabates@apple.com>
[iOS] Make WebKit build with public iOS SDK
https://bugs.webkit.org/show_bug.cgi?id=136863
Reviewed by David Kilzer.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm: Moved CFNetwork forward declarations
from this file to file CFNetworkSPI.h and included header CFNetworkSPI.h.
* NetworkProcess/mac/NetworkDiskCacheMonitor.mm: Ditto.
* NetworkProcess/mac/NetworkResourceLoaderMac.mm: Ditto.
* UIProcess/API/Cocoa/WKProcessPool.mm: Ditto.
* UIProcess/mac/WebContextMac.mm: Ditto.
* WebProcess/cocoa/WebProcessCocoa.mm: Ditto.
2014-11-19 Anders Carlsson <andersca@apple.com>
Add APIs for customizing the user agent
https://bugs.webkit.org/show_bug.cgi?id=138881
rdar://problem/17233981
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView customUserAgent]):
(-[WKWebView setCustomUserAgent:]):
(-[WKWebView _customUserAgent]):
(-[WKWebView _setCustomUserAgent:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(LazyInitialized::set):
(-[WKWebViewConfiguration copyWithZone:]):
(defaultApplicationNameForUserAgent):
(-[WKWebViewConfiguration applicationNameForUserAgent]):
(-[WKWebViewConfiguration setApplicationNameForUserAgent:]):
2014-11-19 Simon Fraser <simon.fraser@apple.com>
[WK2 UI-side compositing] Initialize RemoteLayerTreeTransaction properties which are unset on Mac
https://bugs.webkit.org/show_bug.cgi?id=138877
Reviewed by Tim Horton.
These data members are unused on Mac, but still encoded, so initialize them with
reasonable values.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::RemoteLayerTreeTransaction):
2014-11-19 Enrica Casucci <enrica@apple.com>
Refactor iOS selection gestures.
https://bugs.webkit.org/show_bug.cgi?id=138720
rdar://problem/18964359
Reviewed by Benjamin Poulain.
This is a first step towards refactoring the selection gestures code.
It introduces more general selection movement functions that can be used to build
the gestures.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(toWKTextGranularity):
(toWKSelectionDirection):
(-[WKContentView selectPositionAtPoint:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView beginSelectionInDirection:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::selectTextWithGranularityAtPoint):
(WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection):
(WebKit::WebPageProxy::selectPositionAtPoint):
(WebKit::WebPageProxy::beginSelectionInDirection):
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::visiblePositionInFocusedNodeForPoint):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::selectPositionAtBoundaryWithDirection):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::beginSelectionInDirection):
(WebKit::WebPage::updateSelectionWithExtentPoint):
2014-11-19 Simon Fraser <simon.fraser@apple.com>
[WK2 UI-side Compositing] Fix the position and scroll indicator of the UI-side tiled scrolling indicator
https://bugs.webkit.org/show_bug.cgi?id=138876
Reviewed by Beth Dakin.
Fix the position of the tiled scrolling indicator in MiniBrowser by taking top
content offset into account.
On Mac, pass the current scroll position back to the UI process via the RemoteLayerTreeTransaction
so that we can use it to show the correctly scroll offset in the indicator. This is temporary until
Mac does UI-side scrolling.
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::scrollPosition):
(WebKit::RemoteLayerTreeTransaction::setScrollPosition):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
2014-11-19 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] Error in documentation of webkit_print_operation_get_page_setup()
https://bugs.webkit.org/show_bug.cgi?id=138868
Reviewed by Carlos Garcia Campos.
Fix copypaste error in documentation of
webkit_print_operation_get_page_setup().
* UIProcess/API/gtk/WebKitPrintOperation.cpp:
2014-11-19 Mark Rowe <mrowe@apple.com>
Remove an unused file.
* version.plist: Removed.
2014-11-18 Benjamin Poulain <bpoulain@apple.com>
[WK2] Remove the minimalUI code from the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=138819
Reviewed by Sam Weinig.
It looks like the only interface we have to keep alive is
[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:minimumLayoutSizeForMinimalUI:maximumUnobscuredSizeOverride:].
Clean up everything else, it is a pile of useless code.
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLoadForMainFrame]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _didRelaunchProcess]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:minimumLayoutSizeForMinimalUI:maximumUnobscuredSizeOverride:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):
(-[WKWebView _setUsesMinimalUI:]): Deleted.
(-[WKWebView _usesMinimalUI]): Deleted.
(activeMinimumLayoutSizeForMinimalUI): Deleted.
(-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _frameOrBoundsChanged]):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::setUsesMinimalUI): Deleted.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSizeForMinimalUI): Deleted.
(WebKit::WebPageProxy::setUsesMinimalUI): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportPropertiesDidChange):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSizeForMinimalUI): Deleted.
2014-11-18 Conrad Shultz <conrad_shultz@apple.com>
Unreviewed. Revision to the build fix in r176304.
The guarded method should simply be in the !TARGET_OS_IPHONE block.
* UIProcess/API/Cocoa/WKViewPrivate.h:
2014-11-18 Benjamin Poulain <bpoulain@apple.com>
iOS8 new "slow tap" heuristic fires mouse compat events despite preventDefault on touchend
https://bugs.webkit.org/show_bug.cgi?id=137069
rdar://problem/18481464
Reviewed by Simon Fraser.
On WebKit2, we let UIWebTouchEventsGestureRecognizer and _UIWebHighlightLongPressGestureRecognizer
run concurrently. This causes a race with an incorrect behavior:
1) If UIWebTouchEventsGestureRecognizer does not cancel the native gestures on start.
2) _UIWebHighlightLongPressGestureRecognizer starts after highlightDelay.
3) When the finger leaves the screen, both gestures end.
-> If the touch end sent to JavaScript in [3] ask the priority over native events, that no longer stops
the _UIWebHighlightLongPressGestureRecognizer.
The two gesture recognizers can run in any order, there is no guarantee on which one runs first.
To solve the bug, I must make sure the _UIWebHighlightLongPressGestureRecognizer never trigger a click
if the page wants the event.
To solve the order problem, I use the fact that event recognition goes in two phases for
non cancelled events:
1) Update the gesture recognizers.
2) Trigger the actions.
I do not know the order of recognizers in [1], but I know both have run before [2] is executed.
I use that to stop _UIWebHighlightLongPressGestureRecognizer from ending with a click in the case of the bug:
1) When _UIWebHighlightLongPressGestureRecognizer starts, I set _highlightLongPressCanClick signaling
the gesture can end normally. This is done on a timer and not direct input so I don't really have to worry
about a race here.
2) When processing the touch event for UIWebTouchEventsGestureRecognizer, I reset the flag _highlightLongPressCanClick
if the page wants the event.
3) When the actions of _UIWebHighlightLongPressGestureRecognizer are processed, the touch event
has already been processed by the page and the flag has been cleared if needed.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _webTouchEvent:preventsNativeGestures:]):
(-[WKContentView _highlightLongPressRecognized:]):
2014-11-18 Ryosuke Niwa <rniwa@webkit.org>
iOS build fix after r176299. This method is not defined in WKViewIOS.mm.
* UIProcess/API/Cocoa/WKViewPrivate.h:
2014-11-18 David Kilzer <ddkilzer@apple.com>
FeatureDefines.xcconfig: Switch from using PLATFORM_NAME to SDK selectors
<http://webkit.org/b/138813>
Reviewed by Mark Rowe.
* Configurations/FeatureDefines.xcconfig: Switch to using SDK
selectors.
2014-11-18 Conrad Shultz <conrad_shultz@apple.com>
Give clients a way to cancel preview popovers
https://bugs.webkit.org/show_bug.cgi?id=138855
Reviewed by Tim Horton.
Promote -[WKView _dismissActionMenuPopovers] from internal to private.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _dismissActionMenuPopovers]):
* UIProcess/API/mac/WKViewInternal.h:
2014-11-18 Chris Dumez <cdumez@apple.com>
Add a setting to toggle DOMTimer throttling support
https://bugs.webkit.org/show_bug.cgi?id=138844
<rdar://problem/19020874>
Reviewed by Andreas Kling.
Add a setting to disable DOM timers throttling, in order to help
developers determine if a specific issue is caused by timer
throttling.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetDOMTimersThrottlingEnabled):
(WKPreferencesGetDOMTimersThrottlingEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2014-11-18 Geoffrey Garen <ggaren@apple.com>
Removed the custom allocator for ListHashSet nodes
https://bugs.webkit.org/show_bug.cgi?id=138841
Reviewed by Andreas Kling.
Uses of ListHashSet no longer need to declare an inline capacity,
since that was only used to specify the capacity of the custom allocator.
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::loadPluginsIfNecessary):
2014-11-18 Eric Carlson <eric.carlson@apple.com>
Unreviewed build fix after r176283.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
2014-11-18 Tim Horton <timothy_horton@apple.com>
Avoid re-encoding action menu image data
https://bugs.webkit.org/show_bug.cgi?id=138817
<rdar://problem/18840382>
Reviewed by Anders Carlsson.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Store and encode a SharedMemory with the raw encoded image data,
instead of re-painting the image into a ShareableBitmap.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _hitTestResultImage]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _copyImage:]):
(-[WKActionMenuController _addImageToPhotos:]):
(-[WKActionMenuController _defaultMenuItems]):
(-[WKActionMenuController _canAddMediaToPhotos]): Deleted.
Build a temporary filename from a UUID and the image's desired extension.
Use the Image's encoded data instead of re-encoding it with CGImageDestination.
Build an image menu only if we have an image, URL, data, and extension.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
2014-11-18 Eric Carlson <eric.carlson@apple.com>
[iOS] allow host application to opt-out of alternate fullscreen
https://bugs.webkit.org/show_bug.cgi?id=138787
Reviewed by Sam Weinig.
"allowsAlternateFullscreen" doesn't need to be in the public WKWebView header.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]): allowsAlternateFullscreen -> _allowsAlternateFullscreen.
* UIProcess/API/Cocoa/WKWebViewConfiguration.h: Remove allowsAlternateFullscreen.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _allowsAlternateFullscreen]): New.
(-[WKWebViewConfiguration _setAllowsAlternateFullscreen:]): New.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Declare _allowsAlternateFullscreen.
2014-11-18 Myles C. Maxfield <mmaxfield@apple.com>
Subclass CachedFont for SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=138686
Reviewed by Simon Fraser.
Re-landing due to flakey bots.
Update for enum type.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::maximumBufferingTime):
2014-11-18 Chris Dumez <cdumez@apple.com>
Update the Vector API to deal with unsigned types instead of size_t
https://bugs.webkit.org/show_bug.cgi?id=138824
Reviewed by Andreas Kling.
Update code base to fix build errors related to the typing changes
in the Vector API (size_t -> unsigned).
* Platform/IPC/ArgumentCoders.h:
* Platform/IPC/DataReference.h:
2014-11-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r176264.
https://bugs.webkit.org/show_bug.cgi?id=138837
caused many test failures (Requested by litherum on #webkit).
Reverted changeset:
"Subclass CachedFont for SVG fonts"
https://bugs.webkit.org/show_bug.cgi?id=138686
http://trac.webkit.org/changeset/176264
2014-11-18 Daniel Bates <dabates@apple.com>
[iOS] Libdispatch, Dyld, IOKit, Mach, NSPointerFunctions, MobileGestalt
SPI are not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138802
Reviewed by David Kilzer.
Include headers DispatchSPI.h and MachVMSPI.h.h instead of including
libdispatch and Mach headers directly.
* Platform/mac/SharedMemoryMac.cpp:
* UIProcess/ios/WebMemoryPressureHandlerIOS.mm:
2014-11-18 Myles C. Maxfield <mmaxfield@apple.com>
Subclass CachedFont for SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=138686
Reviewed by Simon Fraser.
Update for enum type.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::maximumBufferingTime):
2014-11-18 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add API to create a WebKitWebContext
https://bugs.webkit.org/show_bug.cgi?id=138826
Reviewed by Gustavo Noronha Silva.
We have always used a default web context without providing API to
create others. The main reason was that nobody requested it and we
haven't needed it either. The main problem of the default web
context is that you can't configure anything during
construction. This hasn't been a problem so far because all the
web context configuration we expose in the API can be configured
after construction. But now we need to expose API to allow the
user to configure the local storage directory, which is a
construct only configuration. The default web context was also a
problem for our unit tests, because sharing the same context made
it difficult to ensure tests cases are independent to each other.
* UIProcess/API/gtk/WebKitGeolocationProvider.cpp:
(WebKitGeolocationProvider::~WebKitGeolocationProvider): Reset the
provider to avoid crashes when web context is destroyed and a new
one is created.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed): Add constructed implementation to
create the WebContext and initialize it.
(webkitWebContextDispose): Detach web context clients to avoid
crashes when a client callback is called on a disposed WebKitWebContext.
(webkit_web_context_class_init): Initialize gettext, add
constructed implementation and add the pointer to the vmethods
when creating signals.
(createDefaultWebContext): Simply create a WebKitWebContext.
(webkit_web_context_new): New public method to create a WebKitWebContext.
(injectedBundleFilename): Deleted.
* UIProcess/API/gtk/WebKitWebContext.h: Add virtual methods for
signals, so that users can inherit from WebKitWebContext and
override the virtual methods.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
2014-11-18 Carlos Alberto Lopez Perez <clopez@igalia.com>
[SOUP] [GnuTLS] Don't use a SSL3.0 record version in client hello.
https://bugs.webkit.org/show_bug.cgi?id=138794
Reviewed by Sergio Villar Senin.
It seems that following POODLE many sites incorrectly banned SSL 3.0
record packet versions. Since GnuTLS uses a SSL 3.0 record to
advertise TLS 1.2, they are effectively banning it even if it doesn't
advertise SSL 3.0. That is a server issue, but it can be worked around
by using the modifier %LATEST_RECORD_VERSION.
With this modifier, GnuTLS will use the latest TLS version record
in client hello instead of using the default SSL 3.0.
* NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
(main):
* WebProcess/EntryPoint/unix/WebProcessMain.cpp:
(main):
2014-11-17 Conrad Shultz <conrad_shultz@apple.com>
Page previews should be loaded sooner
https://bugs.webkit.org/show_bug.cgi?id=138814
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
Send -_createPreviewPopover..
(-[WKActionMenuController _previewURLFromActionMenu:]):
Relocate some logic to the new -_createPreviewPopover; gate early return on popover visibility.
(-[WKActionMenuController _createPreviewPopover]):
Renamed from -_createPreviewPopoverForURL:originRect:; explicitly send -loadView to warm up the preview view.
(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]): Deleted.
2014-11-17 Beth Dakin <bdakin@apple.com>
Preview is sometimes dismissed too early
https://bugs.webkit.org/show_bug.cgi?id=138811
-and corresponding-
rdar://problem/18900839
Reviewed by Tim Horton.
Don’t make the popover transient until didCloseMenu: time.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController didCloseMenu:withEvent:]):
(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
2014-11-17 Daniel Bates <dabates@apple.com>
Unreviewed, rolling out r176232.
Broke the Mac build. Will investigate offline.
Reverted changeset:
"[iOS] Libdispatch, Dyld, IOKit, Mach, NSPointerFunctions,
MobileGestalt"
https://bugs.webkit.org/show_bug.cgi?id=138802
http://trac.webkit.org/changeset/176232
2014-11-17 Daniel Bates <dabates@apple.com>
[iOS] Libdispatch, Dyld, IOKit, Mach, NSPointerFunctions, MobileGestalt
SPI are not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138802
Reviewed by David Kilzer.
Include headers DispatchSPI.h and MachVMSPI.h.h instead of including
libdispatch and Mach headers directly.
* Platform/mac/SharedMemoryMac.cpp:
* UIProcess/ios/WebMemoryPressureHandlerIOS.mm:
2014-11-17 Daniel Bates <dabates@apple.com>
[iOS] CoreText and CoreUI SPI are not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138760
Reviewed by David Kilzer.
Include header CoreTextSPI.h instead of including CoreText private headers.
* WebProcess/WebPage/WebPage.cpp:
2014-11-17 Tim Horton <timothy_horton@apple.com>
DataDetectors PageOverlay callbacks can come in to the wrong overlay
https://bugs.webkit.org/show_bug.cgi?id=138801
<rdar://problem/18991369>
Reviewed by Anders Carlsson.
We can call dataDetectorsDidHideUI on the wrong (or no) PageOverlay,
because it's possible to have another performActionMenuHitTestAtLocation
between the first one and the dataDetectorsDid*UI that correspond to it.
To make sure that the callbacks come to the right PageOverlay, plumb
an integer ID through all of the callbacks and find the overlay based on that.
* Shared/mac/ActionMenuHitTestResult.h:
Store the ID of the PageOverlay that overrode data detection.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Send the ID back to the Web process when replying from DD callbacks.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Store the ID of the PageOverlay that overrode data detection instead of
keeping the PageOverlay itself.
(WebKit::WebPage::dataDetectorsDidPresentUI):
(WebKit::WebPage::dataDetectorsDidChangeUI):
(WebKit::WebPage::dataDetectorsDidHideUI):
Find and reply to the correct page overlay.
2014-11-17 Beth Dakin <bdakin@apple.com>
Whitespace action menus should focus the HitTestResult and create an insertion
point
https://bugs.webkit.org/show_bug.cgi?id=138786
-and corresponding-
rdar://problem/18944893
Reviewed by Tim Horton.
Whitespace menus should cause the HitTestResult to be focused, and they should set
the selection based on the HitTest location.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::focusAndSelectLastActionMenuHitTestResult):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController isMenuForTextContent]):
(-[WKActionMenuController willOpenMenu:withEvent:]):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::focusAndSelectLastActionMenuHitTestResult):
2014-11-17 Daniel Bates <dabates@apple.com>
[iOS] AVKit and MediaPlayer SPI are not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138756
Reviewed by Eric Carlson.
Include header MPAVRoutingControllerSPI.h instead of including the
private header MPAVRoutingController.h.
Additionally, sort the list of #import directives.
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
2014-11-17 Daniel Bates <dabates@apple.com>
[iOS] QuartzCore SPI not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138751
Reviewed by David Kilzer.
* Shared/mac/RemoteLayerBackingStore.mm: Move CALayer forward declaration
from this file to file QuartzCoreSPI.h and include header QuartzCoreSPI.h.
* Shared/mac/RemoteLayerTreePropertyApplier.mm: Ditto.
* UIProcess/API/Cocoa/WKWebView.mm: Include header QuartzCoreSPI.h instead
of including QuartzCore headers directly.
* UIProcess/ios/ViewGestureControllerIOS.mm: Ditto.
* UIProcess/ios/WKContentView.mm: Ditto.
* UIProcess/ios/WKPDFPageNumberIndicator.mm: Ditto.
* UIProcess/mac/ViewGestureControllerMac.mm: Move CAFilter forward declarations
from this file to fileQuartzCoreSPI.h and include header QuartzCoreSPI.h.
Also sort the list of #import directives.
* UIProcess/mac/ViewSnapshotStore.mm: Include header QuartzCoreSPI.h
instead of including QuartzCore headers directly.
2014-11-17 Eric Carlson <eric.carlson@apple.com>
[iOS] allow host application to opt-out of alternate fullscreen
https://bugs.webkit.org/show_bug.cgi?id=138787
Reviewed by Darin Adler.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsAlternateFullscreen):
(WKPreferencesGetAllowsAlternateFullscreen):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2014-11-16 Benjamin Poulain <bpoulain@apple.com>
Start cleaning up minimal UI from WKWebView
https://bugs.webkit.org/show_bug.cgi?id=138725
Reviewed by Sam Weinig.
Start removing the old update path for minimumLayoutSize/maximumUnobscuredSize.
Unfortunately, I cannot remove everything yet because the clients still did not have
alternatives to [_overrideLayoutParametersWithMinimumLayoutSize:minimumLayoutSizeForMinimalUI:maximumUnobscuredSizeOverride]
and might change the minimal UI options.
This patch adds [_overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride] to move
in the right direction. Next we'll udpate the client code and get rid of all the useless code.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:minimumLayoutSizeForMinimalUI:maximumUnobscuredSizeOverride:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):
(-[WKWebView _minimumLayoutSizeOverrideForMinimalUI]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-11-16 Zan Dobersek <zdobersek@igalia.com>
[TexMap] Add typecasting support for GraphicsLayerTextureMapper
https://bugs.webkit.org/show_bug.cgi?id=138741
Reviewed by Martin Robinson.
Replace uses of toTextureMapperLayer() with downcasting and
calling the GraphicsLayerTextureMapper::layer() method.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize):
(WebKit::LayerTreeHostGtk::layerFlushTimerFired):
(WebKit::LayerTreeHostGtk::compositeLayersToContext):
2014-11-16 Tim Horton <timothy_horton@apple.com>
Use TextIndicator instead of the built in Lookup highlight
https://bugs.webkit.org/show_bug.cgi?id=138775
<rdar://problem/18953982>
Follow-up to r176164.
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]):
(-[WKView initWithFrame:context:configuration:webView:]):
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformDictionaryLookup):
Include the softlinking macros directly in the files they're used
in, as they're supposed to be used.
2014-11-16 Tim Horton <timothy_horton@apple.com>
Use TextIndicator instead of the built in Lookup highlight
https://bugs.webkit.org/show_bug.cgi?id=138775
<rdar://problem/18953982>
Reviewed by Anders Carlsson.
In order to make the yellow highlight for Lookup more accurately match the
painted content of the web page (in light of e.g. Web fonts, and interesting
text features that only WebKit implements and cannot round-trip through
NSAttributedString), use a TextIndicator instead of the built-in Lookup
highlight where possible.
* Configurations/BaseTarget.xcconfig:
Make it possible to include headers from private frameworks. This matches WebCore.
* Shared/DictionaryPopupInfo.cpp:
(WebKit::DictionaryPopupInfo::encode):
(WebKit::DictionaryPopupInfo::decode):
* Shared/DictionaryPopupInfo.h:
Include the attributed string inside the DictionaryPopupInfo, instead of
as a secondary argument to DidPerformDictionaryLookup.
Add a TextIndicator to DictionaryPopupInfo, which can be used to highlight
the text in the UI process.
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _dictionaryLookupPopoverWillClose:]):
(-[WKView _setTextIndicator:fadeOut:animate:animationCompletionHandler:]):
(-[WKView _setTextIndicator:fadeOut:animate:]):
(-[WKView initWithFrame:context:configuration:webView:]):
(+[WKView hideWordDefinitionWindow]):
* UIProcess/API/mac/WKViewInternal.h:
Adopt the Lookup SPI header.
If we have the requisite API, register the notification that Lookup sends
when the popover closes, and hook that up to hide the text indicator.
Add a version of _setTextIndicator: that takes an animation completion handler.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didPerformDictionaryLookup):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::didPerformDictionaryLookup):
Adjust to the new didPerformDictionaryLookup signature.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
Remove a WKSI import.
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformDictionaryLookup):
If we have the requisite API, disable Lookup's built-in highlight and
present a TextIndicator instead.
We currently have to run the animations serially (first bounce the TextIndicator,
then animate in the Lookup popover) because the act of adding the Lookup popover
blocks us from getting any animation events for the TextIndicator, and breaks
the bounce. We could also fix this by using a threaded animation for the TextIndicator,
but it's not clear that it's safe to do so.
(WebKit::PageClientImpl::dismissDictionaryLookupPanel):
When explicitly dismissing the Lookup panel, also hide the text indicator.
* UIProcess/mac/TextIndicatorWindow.h:
* UIProcess/mac/TextIndicatorWindow.mm:
(WebKit::TextIndicatorWindow::setTextIndicator):
Store the completion handler.
(WebKit::TextIndicatorWindow::bounceAnimationDidEnd):
Call the completion handler when the animation completes.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]):
Disable the Lookup item if lookup is not available.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::showDefinitionForAttributedString):
Adjust to the new didPerformDictionaryLookup signature.
Since PDFPlugin can't trivially repaint the required part of the PDF,
we don't build a TextIndicator. This will result in PDFPlugin continuing
to use Lookup's built-in highlight.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupForRange):
Build a TextIndicator from the Lookup range and pass it along with
the DictionaryPopupInfo.
2014-11-15 David Kilzer <ddkilzer@apple.com>
REGRESSION (r176137): iOS build broke after moving DataDetectors scanning code to WebCore
This regressed with the following commit:
Move DataDetectors scanning code to WebCore
https://bugs.webkit.org/show_bug.cgi?id=138731
<rdar://problem/18877535>
* Shared/mac/ActionMenuHitTestResult.mm: Add PLATFORM(MAC) check
around the entire implementation since it it unused on iOS.
2014-11-14 Anders Carlsson <andersca@apple.com>
Raise an exception if -[WKWebView initWithFrame:configuration:] is passed a nil configuration
https://bugs.webkit.org/show_bug.cgi?id=138757
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
2014-11-15 Carlos Garcia Campos <cgarcia@igalia.com>
Network process crash when running http/tests/appcache/fallback.html
https://bugs.webkit.org/show_bug.cgi?id=138740
Reviewed by Alexey Proskuryakov.
It happens because ResourceHandle::continueWillSendRequest() is
called with a null request. We could handle that case in the
ResourceHandle, but the thing is tha the behaviour is
not the same for async loads, or when loading in the web
process. In WebResourceLoader::willSendRequest(),
ResourceRequest::willSendRequest() is called, and cancels the load
if the client returns a null request. In this case, the
ResourceLoader is detached and WebResourceLoader::willSendRequest()
returns early without sending the ContinueWillSendRequest message
to the network process. However, for synchronous loads,
NetworkResourceLoader::continueWillSendRequest() is always called.
Fixes http/tests/appcache/fallback.html for GTK port when using
the network process.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest): Do not
call ResourceHandle::continueWillSendRequest() if the client
request is null, since the load is going to be cancelled.
2014-11-15 Tim Horton <timothy_horton@apple.com>
Implement data detectors and mailto action menus for WebKit1
https://bugs.webkit.org/show_bug.cgi?id=138765
<rdar://problem/18877535>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForMailtoLink]):
2014-11-14 Tim Horton <timothy_horton@apple.com>
Remove pre-[DDActionContext contextForView:...] fallback path
https://bugs.webkit.org/show_bug.cgi?id=138735
<rdar://problem/18982046>
Reviewed by Simon Fraser.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController didCloseMenu:withEvent:]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
(hasDataDetectorsCompletionAPI): Deleted.
Remove the now-unnecessary fallback path.
2014-11-14 Tim Horton <timothy_horton@apple.com>
Frequent crashes under actionContextForResultAtPoint
https://bugs.webkit.org/show_bug.cgi?id=138761
<rdar://problem/18990684>
Reviewed by Dean Jackson.
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(PageOverlayClientImpl::actionContextForResultAtPoint):
Initialize apiRange.
2014-11-14 Daniel Bates <dabates@apple.com>
[iOS] CoreGraphics SPI not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138709
Reviewed by David Kilzer.
Include header CoreGraphicsSPI.h instead of including headers of
CoreGraphics directly.
* UIProcess/API/Cocoa/WKWebView.mm:
* UIProcess/ios/WKScrollView.mm:
2014-11-14 Tim Horton <timothy_horton@apple.com>
Move DataDetectors scanning code to WebCore
https://bugs.webkit.org/show_bug.cgi?id=138731
<rdar://problem/18877535>
Reviewed by Anders Carlsson.
Move DataDetectors scanning code to WebCore, so that both WebKits can use it.
* Shared/TextIndicator.cpp:
(WebKit::TextIndicator::createWithRange):
Move createWithRange in from WebPageMac's textIndicatorForRange.
(WebKit::TextIndicator::createWithSelectionInFrame):
* Shared/TextIndicator.h:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSelectionSnapshot):
* WebProcess/WebPage/WebFrame.h:
Constify some things.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Avoid using the DD result if it didn't come with a non-null Range.
Make use of detectItemAroundHitTestResult and TextIndicator::createWithRange.
(WebKit::scanForDataDetectedItems): Deleted.
(WebKit::textIndicatorForRange): Deleted.
Moved these two to other places.
2014-11-14 Dan Bernstein <mitz@apple.com>
<rdar://problem/18978497> Wrong (off-by-1) navigation snapshots shown after a mix of gesture and button back/forward navigation
https://bugs.webkit.org/show_bug.cgi?id=138753
Reviewed by Tim Horton.
Rather than having the UI process record a snapshot jut before the Web Content process’s
notion of its current back/forward list item changes, have the UI process record a snapshot
right before its own current back/forward list item changes. This ensures that the right
snapshot gets attached to the right item in the UI process.
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::addItem): If there is a current item, record a navigation
snapshot of it before making the new item current.
(WebKit::WebBackForwardList::goToItem): If there is a current item, record a navigation
snapshot of it before making another item current.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willChangeCurrentHistoryItemForMainFrame): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Removed willChangeCurrentHistoryItemForMainFrame
message.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h: Removed declaration of
willChangeCurrentHistoryItem override.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willChangeCurrentHistoryItemForMainFrame): Deleted.
* WebProcess/WebPage/WebPage.h:
2014-11-14 Dan Bernstein <mitz@apple.com>
Add some tracing to help investigating <rdar://problem/18905383> [iOS] Crash due to null m_webPageProxyForBackForwardListForCurrentSwipe in ViewGestureController::endSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=138750
Reviewed by Tim Horton.
Emit trace messages at various points, and log them prior to crashing if the error condition
occurs. Otherwise, clear the trace messages.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::addLogEntry): Helper function that adds a message, including a time stamp and a
backtrace, to m_logEntries.
(WebKit::dumpLogEntries): Helper function that logs everything in m_logEntries.
(WebKit::ViewGestureController::beginSwipeGesture): Add a log entry.
(WebKit::ViewGestureController::endSwipeGesture): If
m_webPageProxyForBackForwardListForCurrentSwipe is null, dump the log entries just before
crashing. Otherwise, clear m_logEntries.
(WebKit::ViewGestureController::willCommitPostSwipeTransitionLayerTree): Add a log entry.
(WebKit::ViewGestureController::removeSwipeSnapshot): Add a log entry.
* UIProcess/mac/ViewGestureController.h: Defined ENABLE_VIEW_GESTURE_CONTROLLER_TRACING,
and added m_logEntries member variable.
2014-11-14 Beth Dakin <bdakin@apple.com>
URLs for some videos are not valid URLs, should not be exposed to action menu
https://bugs.webkit.org/show_bug.cgi?id=138746
-and corresponding-
rdar://problem/18941927
Reviewed by Tim Horton.
If the video cannot be downloaded, that is also an indication that the URL of the
video will not be valid on its own. In these cases, we should share or copy the
main page’s URL.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _copyVideoURL:]):
2014-11-14 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Encode/Decode allowCookies in ResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=138730
Reviewed by Sergio Villar Senin.
We are not sending this information to the network process, making
cookies always available. Fixes
http/tests/xmlhttprequest/cross-origin-no-authorization.html when
network process is enabled.
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
2014-11-14 Zan Dobersek <zdobersek@igalia.com>
Unreviewed build fix for the GTK+ port using Clang.
* UIProcess/gtk/RedirectedXCompositeWindow.h: Include the <functional>
header for the use of std::function<>.
2014-11-13 Dan Bernstein <mitz@apple.com>
Two WKWebView internal methods are implemented in a category
https://bugs.webkit.org/show_bug.cgi?id=138728
Reviewed by Tim Horton.
Moved the implementations from the category to the class.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _ignoresNonWheelMouseEvents]):
(-[WKWebView _setIgnoresNonWheelMouseEvents:]):
2014-11-13 Myles C. Maxfield <mmaxfield@apple.com>
Move FontMac and FontCacheMac off of WKSI
https://bugs.webkit.org/show_bug.cgi?id=138633
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* mac/WebKit2.order:
2014-11-13 Eric Carlson <eric.carlson@apple.com>
Context menus should not offer the "Download video" option for videos that cannot
be downloaded
https://bugs.webkit.org/show_bug.cgi?id=138530
-and corresponding-
rdar://problem/18919130
Reviewed by Tim Horton.
Expose isDownloadableMedia() to the InjectedBundleHitTestResult.
* WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
(WKBundleHitTestResultIsDownloadableMedia):
* WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
(WebKit::InjectedBundleHitTestResult::isDownloadableMedia):
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
2014-11-13 Daniel Bates <dabates@apple.com>
[iOS] NSGeometry data types are not available in the public SDK
https://bugs.webkit.org/show_bug.cgi?id=137536
Reviewed by David Kilzer.
Substitute header WAKAppKitStubs.h for NSGeometry.h as the latter is a
private header.
* Shared/ios/NativeWebTouchEventIOS.mm:
2014-11-13 Simon Fraser <simon.fraser@apple.com>
[WK2] Fire a layout milestone on session restore based on render tree size
https://bugs.webkit.org/show_bug.cgi?id=138711
rdar://problem/16033854
Reviewed by Anders Carlsson.
Add a session-restore layout milestone which fires after restoring a session,
when the render tree size reaches 50% of the size saved in the session state.
* Shared/SessionState.h: Add renderTreeSize.
* UIProcess/API/Cocoa/WKWebView.mm:
(layoutMilestones): Translate from SPI to WebCore milestones.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: New iOS-only milestone, er, event.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::renderingProgressEvents): Translate from WebCore milestone to rendering event.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Init stuff.
(WebKit::WebPageProxy::sessionState):
(WebKit::WebPageProxy::restoreFromSessionState): Zero out the target render tree size,
then get it out of session state and set the flag to say that we haven't reached it yet.
(WebKit::WebPageProxy::listenForLayoutMilestones): Set a flag to know that we should fire
the milestone. The other milestones get sent directly to WebCore.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::exceedsRenderTreeSizeSizeThreshold): Return true when we've reached 50%.
(WebKit::WebPageProxy::didCommitLayerTree): Fire the milestone when appropriate.
* UIProcess/mac/LegacySessionStateCoding.cpp: Rev the session state data for iOS
(where doing so is less disruptive). Standardize some CFString constants.
(WebKit::encodeSessionHistory): Wrap for legibility.
(WebKit::encodeLegacySessionState): Make a CFNumber for render tree size, and store
it in the root dictionary.
(WebKit::decodeBackForwardTreeNode): Move a comment to match another similar block.
(WebKit::decodeLegacySessionState): Decode render tree size and store it.
2014-11-13 Tim Horton <timothy_horton@apple.com>
Adjust the WKBundlePageOverlay Data Detectors SPI
https://bugs.webkit.org/show_bug.cgi?id=138685
<rdar://problem/18947156>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Forward DDActionContext callbacks to the Web process.
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
* WebProcess/WebPage/WebPageOverlay.cpp:
* WebProcess/WebPage/WebPageOverlay.h:
Add four DataDetectors-related WebKit2-only page overlay callbacks:
(WebKit::WebPageOverlay::actionContextForResultAtPoint):
Called during the action menu hit test; clients can reply with a DDActionContext
and a DOM range, and WebKit will treat that result and range as if it had
detected it itself, building the action menu and showing the yellow highlight as usual.
(WebKit::WebPageOverlay::dataDetectorsPresentedUI):
(WebKit::WebPageOverlay::dataDetectorsChangedUI):
(WebKit::WebPageOverlay::dataDetectorsHidUI):
These correspond to the DDActionContext callbacks, and can be used by clients
to show/hide corresponding UI while DataDetectors in the UI process is presenting UI.
(WebKit::WebPageOverlay::prepareForActionMenu): Deleted.
Get rid of prepareForActionMenu, as nobody ever used it.
* WebProcess/WebPage/WebPage.cpp:
Add WebPageOverlay.h so that we can build, because the destructor lives here.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Give all of the WebPageOverlays the first shot at data detection; if none of them
reply with a valid DDActionContext/DOM range, we'll go ahead and do our normal detection.
(WebKit::WebPage::dataDetectorsPresentedUI):
(WebKit::WebPage::dataDetectorsChangedUI):
(WebKit::WebPage::dataDetectorsHidUI):
Forward these along to the active WebPageOverlay.
2014-11-13 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Missing ResourceRequest members encoded/decoded
https://bugs.webkit.org/show_bug.cgi?id=138694
Reviewed by Sergio Villar Senin.
At least timeoutInterval and priority should also be
encoded/decoded. This fixes all http/tests/xmlhttprequest/timeout/
tests when using the network process, since the timeout is always
0 for all requests that we send to the network process.
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
2014-11-12 Ryuan Choi <ryuan.choi@navercorp.com>
[EFL] Fix the build with EFL 1.12
https://bugs.webkit.org/show_bug.cgi?id=138245
Reviewed by Gyuyoung Kim.
* UIProcess/API/efl/EwkView.cpp:
First, modified to use Evas_GL raw pointer instead of UniquePtrEfl because
Evas_GL.h can't be included in UniquePtrEfl.h
It should be moved into EvasGLContext because WebKit/EFL use only one Evas_GL.
Second, provided the version of GLES in Evas_GL_Config not to break build with
EFL 1.12
(EwkView::EwkView):
(EwkView::~EwkView):
(EwkView::displayTimerFired):
(EwkView::createGLSurface):
* UIProcess/API/efl/EwkView.h:
2014-11-12 Ada Chan <adachan@apple.com>
Fix the iOS build.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pageMutedStateDidChange):
2014-11-05 Ada Chan <adachan@apple.com>
Implement new plug-in API for muting plug-ins
https://bugs.webkit.org/show_bug.cgi?id=138105
Reviewed by Anders Carlsson.
Handle the setting of NPNVmuteAudioBool on the plug-in.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::PluginControllerProxy):
Initialize m_isMuted.
(WebKit::PluginControllerProxy::mutedStateChanged):
Tell the plugin about the new muted state.
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginControllerProxy.messages.in:
Add the MutedStateChanged message.
* PluginProcess/PluginCreationParameters.cpp:
(WebKit::PluginCreationParameters::PluginCreationParameters):
Initialize isMuted.
(WebKit::PluginCreationParameters::encode):
Handle isMuted.
(WebKit::PluginCreationParameters::decode):
Ditto.
* PluginProcess/PluginCreationParameters.h:
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::NPN_GetValue):
Get the plug-in's muted state.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::isMuted):
Get the muted state from PluginControllerProxy.
(WebKit::NetscapePlugin::mutedStateChanged):
Call NPP_SetValue with NPNVmuteAudioBool and the updated muted state.
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Plugin.h:
(WebKit::Plugin::mutedStateChanged):
* WebProcess/Plugins/PluginController.h:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::initialize):
Set m_pendingPluginCreationParameters->isMuted.
(WebKit::PluginProxy::mutedStateChanged):
Send the MutedStateChanged message to the plugin process.
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pageMutedStateDidChange):
Call Plugin::mutedStateChanged() with the page's muted state.
(WebKit::PluginView::isMuted):
Get the page's current muted state.
* WebProcess/Plugins/PluginView.h:
2014-11-12 Tim Horton <timothy_horton@apple.com>
Two action menu item titles are swapped
https://bugs.webkit.org/show_bug.cgi?id=138667
<rdar://problem/18960409>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]):
Swap them back.
2014-11-12 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r175806.
https://bugs.webkit.org/show_bug.cgi?id=138666
Capturing CString is not thread safe (Requested by anttik on
#webkit).
Reverted changeset:
"[WK2] Use C++ lambdas in IPC::Connection"
https://bugs.webkit.org/show_bug.cgi?id=138018
http://trac.webkit.org/changeset/175806
2014-11-12 Tim Horton <timothy_horton@apple.com>
Need to show the text indicator when Data Detectors shows a popover
https://bugs.webkit.org/show_bug.cgi?id=138664
<rdar://problem/18869900>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(hasDataDetectorsCompletionAPI):
Determine if we have the new API.
(-[WKActionMenuController willDestroyView:]):
(-[WKActionMenuController willOpenMenu:withEvent:]):
Make use of the new API.
If we wanted to show a Data Detectors menu but have no items (or they're all
disabled), cancel the menu.
If we don't have it, manually manipulate the highlight.
(-[WKActionMenuController didCloseMenu:withEvent:]):
Make use of the new API.
If we don't have it, manually manipulate the highlight.
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Set up completion handlers if we have the new API; when DataDetectors
presents UI, show the text indicator, when it dismisses, hide it.
If we don't have the API, manually manipulate the highlight.
2014-11-12 Tim Horton <timothy_horton@apple.com>
Make action menus much more reliable
https://bugs.webkit.org/show_bug.cgi?id=138654
<rdar://problem/18909111>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
Remove MenuUpdateStage; nothing actually uses this value, we just pass it around.
(-[WKActionMenuController didPerformActionMenuHitTest:userData:]):
Update the menu as soon as we have a reply from the Web process.
(-[WKActionMenuController menuNeedsUpdate:]):
If our sync-wait for the Web process' reply times out, we should still update
the menu to remove the placeholder separator item.
(-[WKActionMenuController _updateActionMenuItems]):
(-[WKActionMenuController _updateActionMenuItemsForStage:]): Deleted.
If we have our final answer for this menu (_state == Ready), and the final answer
has no items in the menu, cancel tracking on the menu.
2014-11-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move RedirectedXCompositeWindow from platform to WebKit2 layer
https://bugs.webkit.org/show_bug.cgi?id=138093
Reviewed by Martin Robinson.
It's only used by WebKitWebViewBase. While moving the code the
following cleanups have been made:
- Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.
- Use a helper class XDamageNotifier to handle the XDamage
events filtering and notification.
- Use std::function instead of pointer to function for the
damage callback.
- Pass the X display to the RedirectedXCompositeWindow constructor
and keep it as a member to use it everywhere, instead of using
the default display in some places and the widget display in others.
- Pass the damage notify function as a contructor parameter of
RedirectedXCompositeWindow instead of setting the callback
right after creating the object.
- Remove GLContextNeeded and all the dead code related to the
CreateGLContext mode that is no longer used.
- Rename cairoSurfaceForWidget() as surface().
- windowId() has been renamed as windowID() and made const.
- Use std::unique_ptr instead of PassOwnPtr.
- Fix coding style issues.
* PlatformGTK.cmake:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseConstructed):
(webkitWebViewRenderAcceleratedCompositingResults):
(webkitWebViewBaseCreateWebPage):
(redirectedWindowDamagedCallback): Deleted.
* UIProcess/gtk/RedirectedXCompositeWindow.cpp: Renamed from Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp.
(WebKit::XDamageNotifier::XDamageNotifier):
(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::XDamageNotifier::filterXEvent):
(WebKit::xDamageNotifier):
(WebKit::supportsXDamageAndXComposite):
(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):
(WebKit::RedirectedXCompositeWindow::cleanupPixmapAndPixmapSurface):
(WebKit::RedirectedXCompositeWindow::surface):
* UIProcess/gtk/RedirectedXCompositeWindow.h: Renamed from Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h.
(WebKit::RedirectedXCompositeWindow::windowID):
2014-09-01 Philippe Normand <pnormand@igalia.com>
[WK2] UserMediaClient support
https://bugs.webkit.org/show_bug.cgi?id=123158
Reviewed by Benjamin Poulain.
Support for UserMediaPermissionRequest in WebKit2. It's
implemented similarily to the GeolocationPermissionRequest
support. When the WebPage requires this permission it sends a
message to the UI process which at some point grants or denies the
permission and sends the result back to the WebProcess.
* CMakeLists.txt: Generic CMake support for new files.
* Shared/API/c/WKBase.h: New type for UserMediaPermissionRequest.
* Shared/APIObject.h: Ditto.
* UIProcess/API/C/WKAPICast.h: PermissionRequest API mapping.
* UIProcess/API/APIUIClient.h: New decidePolicy handler for UserMediaPermissionRequest.
(API::UIClient::decidePolicyForUserMediaPermissionRequest):
* UIProcess/API/C/WKPage.cpp: Ditto.
(WKPageSetPageUIClient):
* UIProcess/API/C/WKPageUIClient.h: WKPageUIClient version bump to
5, including the new decidePolicyForUserMediaPermissionRequest member.
* UIProcess/API/C/WKUserMediaPermissionRequest.cpp: Added, C API
implementation of the UserMediaPermissionRequest.
(WKUserMediaPermissionRequestGetTypeID):
(WKUserMediaPermissionRequestAllow):
(WKUserMediaPermissionRequestDeny):
* UIProcess/API/C/WKUserMediaPermissionRequest.h: Added.
* UIProcess/API/C/WebKit2_C.h:
* UIProcess/UserMediaPermissionRequestManagerProxy.h: Added.
* UIProcess/UserMediaPermissionRequestProxy.cpp: Added, proxy
object for the UserMediaPermissionRequestType.
(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
(WebKit::UserMediaPermissionRequestProxy::allow):
(WebKit::UserMediaPermissionRequestProxy::deny):
(WebKit::UserMediaPermissionRequestProxy::invalidate):
* UIProcess/UserMediaPermissionRequestProxy.h: Added.
(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::mediaParameters):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::requestUserMediaPermissionForFrame): Defer
UserPermissionRequest to the UIClient.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: New message to handle UserMediaPermissionRequests.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: Added,
WebProcess side of the UserRequestManager, keeping track of each
permission request.
(WebKit::generateRequestID):
(WebKit::UserMediaPermissionRequestManager::UserMediaPermissionRequestManager):
(WebKit::UserMediaPermissionRequestManager::startRequest):
(WebKit::UserMediaPermissionRequestManager::cancelRequest):
(WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision):
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h: Added.
* WebProcess/WebCoreSupport/WebUserMediaClient.cpp: Added,
WebProcess implementation of the WebCore::UserMediaClient.
(WebKit::WebUserMediaClient::WebUserMediaClient):
(WebKit::WebUserMediaClient::pageDestroyed):
(WebKit::WebUserMediaClient::requestPermission):
(WebKit::WebUserMediaClient::cancelRequest):
* WebProcess/WebCoreSupport/WebUserMediaClient.h: Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Create the
UserMediaPermissionRequestManager and register the UserMediaClient
to the page.
(WebKit::WebPage::didReceiveUserMediaPermissionDecision): Dispatch
decision to manager.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::userMediaPermissionRequestManager):
* WebProcess/WebPage/WebPage.messages.in: New Message to handle
permission decision result from the UI process.
2014-11-11 Tim Horton <timothy_horton@apple.com>
Add support for mailto: link action menus
https://bugs.webkit.org/show_bug.cgi?id=138641
<rdar://problem/18741567>
Reviewed by Beth Dakin.
* Shared/API/c/WKActionMenuTypes.h:
Add a new type for mailto links.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForMailtoLink]):
Build a DDActionContext and grab menu items for our mailto link.
(-[WKActionMenuController _defaultMenuItems]):
Get menu items from _defaultMenuItemsForMailtoLink if needed.
2014-11-11 Conrad Shultz <conrad_shultz@apple.com>
Clients should be notified when a page preview finishes
https://bugs.webkit.org/show_bug.cgi?id=138635
Reviewed by Tim Horton.
Add SPI to WKView to allow clients to do any cleanup that might be necessary when the preview closes.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare new SPI.
* UIProcess/API/mac/WKView.mm:
(-[WKView _finishPreviewingURL:withPreviewView:]):
Stub SPI implementation.
* UIProcess/mac/WKActionMenuController.h:
Add an ivar for the preview view controller.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
Update to use the ivar.
(-[WKActionMenuController _clearPreviewPopover]):
Send -_finishPreviewingURL:withPreviewView: and nil out the view controller ivar.
2014-11-11 Tim Horton <timothy_horton@apple.com>
Update artwork for some action menu items
https://bugs.webkit.org/show_bug.cgi?id=138634
<rdar://problem/18871984>
Reviewed by Anders Carlsson.
* Resources/OpenInNewWindowTemplate.pdf: Removed.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]):
(webKitBundleImageNamed): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
Get rid of our custom art, and use system art for two more items.
2014-11-11 Alexey Proskuryakov <ap@apple.com>
DRT and WKTR touch disk cache
https://bugs.webkit.org/show_bug.cgi?id=138622
Reviewed by Geoffrey Garen.
Setting a cache model has a very strange behavior in WebKit2, where it ignores
sizes that were explicitly passed from UI process, and uses different ones. As
setCacheModel() is always called on launch, it always creates a non-empty disk cache.
The design needs to be improved one day, but for now, just make sure that we never
create a disk cache during testing.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::platformSetCacheModel):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeWebProcess):
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel):
(WebKit::WebProcess::platformInitializeWebProcess):
2014-11-11 Eric Carlson <eric.carlson@apple.com>
[iOS] a page with video in optimized fullscreen is visible
https://bugs.webkit.org/show_bug.cgi?id=138632
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isPlayingFullscreenOptimizedVideo]): New.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isViewVisible): Return true if displaying optimized fullscreen
video.
2014-11-11 Tim Horton <timothy_horton@apple.com>
Occasional assertion failure under recommendedScrollbarStyleDidChange()
https://bugs.webkit.org/show_bug.cgi?id=138604
<rdar://problem/18855914>
Reviewed by Beth Dakin.
It is possible for AppKit to install tracking areas into our view
behind our back, but we have code that depends on knowing exactly
the set of tracking areas installed on WKView.
Make this more robust by keeping a reference to the tracking area we
use for many things and manipulating that instead of making assumptions
about the total set of tracking areas on WKView.
* UIProcess/API/mac/WKView.mm:
(-[WKView _primaryTrackingArea]):
(-[WKView _replacePrimaryTrackingArea:]):
Provide a 'primary' tracking area setter/getter.
(-[WKView initWithFrame:context:configuration:webView:]):
Keep a reference to the original tracking area installed at initialization time.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
Instead of walking the set of tracking areas, make use of the fact that
we know exactly which tracking area we installed, and uninstall just that
one, and replace it with our newly-built one.
2014-11-11 Myles C. Maxfield <mmaxfield@apple.com>
Finish moving CTFontGetVerticalGlyphsForCharacters and CTLineCreateWithUniCharProvider out from WKSI
https://bugs.webkit.org/show_bug.cgi?id=138623
Reviewed by Geoff Garen.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* mac/WebKit2.order:
2014-11-11 Timothy Horton <timothy_horton@apple.com>
Add a respondsToSelector check to dismissActionMenuPopovers
​https://bugs.webkit.org/show_bug.cgi?id=138600
<rdar://problem/18932770>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController dismissActionMenuPopovers]):
Avoid calling this wherever it doesn't exist.
2014-11-11 Tim Horton <timothy_horton@apple.com>
DataDetectors' menu items aren't presented in the telephone number menu
https://bugs.webkit.org/show_bug.cgi?id=138602
<rdar://problem/18866308>
Reviewed by Beth Dakin.
We currently round-trip the DataDetectors telephone number NSMenuItems
through the very-lossy WebContextMenuItemData, for no real reason.
We should avoid this so that DataDetectors' actual NSMenuItems are
presented in the final menu, so that they can adjust their items after
providing them to us.
* Platform/mac/MenuUtilities.h:
* Platform/mac/MenuUtilities.mm:
(WebKit::menuItemTitleForTelephoneNumber): Deleted.
Stop adjusting the menu item titles, as they come correct now.
(WebKit::menuItemsForTelephoneNumber): Deleted.
(WebKit::menuForTelephoneNumber):
Return a fully-formed menu for the single telephone number case.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showTelephoneNumberMenu):
Present the fully-formed menu, without round-tripping through
WebContextMenuItemData, because we do not need to hand the items to
the context menu client (and indeed, were not), and because this
allows us to use the exact items returned by DataDetectors, so they
can keep ahold of the items that we actually present.
* UIProcess/PageClient.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::showPlatformContextMenu):
Add a Mac-only PageClient function for presenting a NSMenu at a
WKView-relative point.
2014-11-11 Tim Horton <timothy_horton@apple.com>
Adopt DDActionContext menu type SPI
https://bugs.webkit.org/show_bug.cgi?id=138603
<rdar://problem/18867627>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Use the new SPI instead of WKSI.
2014-11-11 Tim Horton <timothy_horton@apple.com>
Data Detectors popovers should be dismissed upon scrolling
https://bugs.webkit.org/show_bug.cgi?id=138600
<rdar://problem/18932770>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
Dismiss popovers when we start preparing another menu.
(-[WKActionMenuController dismissActionMenuPopovers]):
Use the new DataDetectors SPI.
2014-11-11 Tim Horton <timothy_horton@apple.com>
Localize strings for action menus
https://bugs.webkit.org/show_bug.cgi?id=138591
<rdar://problem/18815343>
Reviewed by Dan Bates.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _showTextIndicator]):
(-[WKActionMenuController _hideTextIndicator]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
Make use of the new strings.
2014-11-11 Myles C. Maxfield <mmaxfield@apple.com>
Cleanup from r175379
https://bugs.webkit.org/show_bug.cgi?id=138616
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* mac/WebKit2.order:
2014-11-11 Myles C. Maxfield <mmaxfield@apple.com>
Move CTFontTransformGlyphs out from WKSI
https://bugs.webkit.org/show_bug.cgi?id=138599
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* mac/WebKit2.order:
2014-11-10 Simon Fraser <simon.fraser@apple.com>
Fix possible crash when closing the web inspector
https://bugs.webkit.org/show_bug.cgi?id=138597
rdar://problem/18872688
Reviewed by Andreas Kling.
I reported a crash when reloading a page after inspecting it, possibly caused by
r172864. Speculatively fix by null-checking the main frame.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::~WebInspectorClient):
2014-11-10 Beth Dakin <bdakin@apple.com>
Whitespace action menus aren't working properly
https://bugs.webkit.org/show_bug.cgi?id=138585
-and corresponding-
rdar://problem/18933586
Reviewed by Tim Horton.
Treat the whitespace menu as a text menu.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController isMenuForTextContent]):
2014-11-10 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Scroll deceleration rate is wrong
https://bugs.webkit.org/show_bug.cgi?id=138574
rdar://problem/18715303
Reviewed by Benjamin Poulain.
The CSS Snap Points code incorrectly set the WKScrollView's deceleration rate,
overriding the custom value that UIWebScrollView sets.
Fix by having WKScrollView store the custom rate at init time, and
using that value in -scrollViewWillBeginDragging:.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewWillBeginDragging:]):
* UIProcess/ios/WKScrollView.h:
* UIProcess/ios/WKScrollView.mm:
(-[WKScrollView initWithFrame:]):
2014-11-09 Ada Chan <adachan@apple.com>
Reset WebPageProxy's isPlayingAudio state after web process crash or page invalidation.
https://bugs.webkit.org/show_bug.cgi?id=138559
Reviewed by Andreas Kling.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
2014-11-10 Beth Dakin <bdakin@apple.com>
WK1: Support default actions for read-only text
https://bugs.webkit.org/show_bug.cgi?id=138552
-and corresponding-
rdar://problem/18877483
Reviewed by Tim Horton.
WK1 now needs to do a lot of dictionary lookup operations that it did not
previously have to handle. So this patch takes a lot of that functionality, which
was implemented as static functions in WebPageMac for WK2 and moves it into
WebCore.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupForRange):
(WebKit::isPositionInRange): Deleted.
(WebKit::shouldUseSelection): Deleted.
(WebKit::rangeExpandedAroundPositionByCharacters): Deleted.
(WebKit::rangeForDictionaryLookupForSelection): Deleted.
(WebKit::rangeForDictionaryLookupAtHitTestResult): Deleted.
2014-11-10 Dan Bernstein <mitz@apple.com>
iOS build fix.
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
2014-11-10 Zan Dobersek <zdobersek@igalia.com>
[WK2] Use C++ lambdas in IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=138018
Reviewed by Anders Carlsson.
Replace uses of WTF::bind() in the IPC::Connection class with C++11 lambdas.
* Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::enqueueIncomingMessage):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::initializeDeadNameSource):
(IPC::Connection::receiveSourceEventHandler):
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::open):
2014-11-09 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Remove create() factory function in FooAnimationValue classes
https://bugs.webkit.org/show_bug.cgi?id=138206
Reviewed by Darin Adler.
As a step to use std::unique_ptr and std::make_unique, this patch removes create()
factory function in FooAnimationValue classes. As this changes, FooAnimationValue::create()
are changed to std::make_unique<>.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<GraphicsLayerAnimation>::decode):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::showPaintRect):
2014-11-09 Chris Dumez <cdumez@apple.com>
Unreviewed, fix typo in r175796.
Rename areEssentialEqualAsFloat to areEssentiallyEqualAsFloat.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::areEssentiallyEqualAsFloat):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::areEssentialEqualAsFloat): Deleted.
2014-11-09 Chris Dumez <cdumez@apple.com>
Add a more correct way to compare floating point numbers and use it
https://bugs.webkit.org/show_bug.cgi?id=138527
Reviewed by Darin Adler.
Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.
* UIProcess/API/Cocoa/WKWebView.mm:
(withinEpsilon):
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::updateMinimumScaleToFit):
(WebKit::fuzzyCompare): Deleted.
* UIProcess/CoordinatedGraphics/PageViewportController.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::withinEpsilon):
* UIProcess/API/Cocoa/WKWebView.mm:
(areEssentiallyEqualAsFloat):
(-[WKWebView _didCommitLayerTree:]):
(withinEpsilon): Deleted.
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::updateMinimumScaleToFit):
(WebKit::fuzzyCompare): Deleted.
* UIProcess/CoordinatedGraphics/PageViewportController.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::areEssentialEqualAsFloat):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::withinEpsilon): Deleted.
2014-11-08 Simon Fraser <simon.fraser@apple.com>
Implement round-rect clipping on video elements
https://bugs.webkit.org/show_bug.cgi?id=138537
rdar://problem/9534399
Reviewed by Darin Adler.
Support border-radius on video and other layers with composited contents,
by pushing a FloatRoundedRect onto the GraphicsLayer as the contentsClippingRect,
and, on Mac, using layer corner-radius or a CAShapeLayer mask.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FloatRoundedRect>::encode):
(IPC::ArgumentCoder<FloatRoundedRect>::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/RemoteLayerBackingStore.mm: New shape layer type.
(WebKit::RemoteLayerBackingStore::drawInContext):
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::applyPropertiesToLayer): Apply corner-radius and shape path.
* Shared/mac/RemoteLayerTreeTransaction.h: Prettify the flags. Yes, I prefer this style.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(+[WKShapeView layerClass]): Make UIViews with a CAShapeLayer layer class.
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
(WebKit::isEquivalentLayer):
(WebKit::PlatformCALayerRemote::setMask):
(WebKit::PlatformCALayerRemote::setClonedLayer):
(WebKit::PlatformCALayerRemote::cornerRadius):
(WebKit::PlatformCALayerRemote::setCornerRadius):
(WebKit::PlatformCALayerRemote::shapeRoundedRect):
(WebKit::PlatformCALayerRemote::setShapeRoundedRect):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2014-11-09 Conrad Shultz <conrad_shultz@apple.com>
Move _ignoresNonWheelMouseEvents implementation to WKView(Private)
https://bugs.webkit.org/show_bug.cgi?id=138487
Reviewed by Dan Bernstein.
Relocate some methods that should have been in a category implementation.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setIgnoresNonWheelMouseEvents:]):
(-[WKView _ignoresNonWheelMouseEvents]):
2014-11-08 Beth Dakin <bdakin@apple.com>
WKActionMenuController methods should be more careful to use the best
WebHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=138536
-and corresponding-
rdar://problem/18919195
Reviewed by Tim Horton.
This patch re-names _hitTestResultForStage to _webHitTestResult. The method no
longer takes a stage since that value is really not necessary to determine the
correct WebHitTestResult. This patch also makes all spots in this file that access
a WebHitTestResult go through _webHitTestResult to ensure that they get the most
up-to-date option.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController _openURLFromActionMenu:]):
(-[WKActionMenuController _addToReadingListFromActionMenu:]):
(-[WKActionMenuController _previewURLFromActionMenu:]):
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _copyVideoURL:]):
(-[WKActionMenuController _saveVideoToDownloads:]):
(-[WKActionMenuController _saveImageToDownloads:]):
(-[WKActionMenuController _defaultMenuItems]):
(-[WKActionMenuController _updateActionMenuItemsForStage:]):
(imageForResource:name::switch): Deleted.
(-[WKActionMenuController _defaultMenuItems:]): Deleted.
2014-11-08 Beth Dakin <bdakin@apple.com>
Implement action menu support for videos
https://bugs.webkit.org/show_bug.cgi?id=138534
-and corresponding-
rdar://problem/18742164
Reviewed by Tim Horton.
New menu type and items types.
* Shared/API/c/WKActionMenuItemTypes.h:
* Shared/API/c/WKActionMenuTypes.h:
Plumb isMediaThatCanBeDownloaded() up to WebHitTestResult.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
* Shared/WebHitTestResult.h:
(WebKit::WebHitTestResult::isMediaThatCanBeDownloaded):
Re-name _canAddImageToPhotos to _canAddMediaToPhotos, which is more accurate. We
might use this method for videos some day, so now it has an accurate name.
* UIProcess/mac/WKActionMenuController.mm:
Default items and their actions.
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _copyVideoURL:]):
(-[WKActionMenuController _saveVideoToDownloads:]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _canAddMediaToPhotos]):
(-[WKActionMenuController _addImageToPhotos:]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(-[WKActionMenuController _defaultMenuItems:]):
(-[WKActionMenuController _canAddImageToPhotos]): Deleted.
We hit test including shadow content to get the desired result for editable text
regions. But for media, we want to re-set to the shadow root.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
2014-11-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Allow to create a view with a related page in WTR
https://bugs.webkit.org/show_bug.cgi?id=138501
Reviewed by Martin Robinson.
This is needed when running tests in multi web process mode.
* UIProcess/API/C/gtk/WKView.cpp:
(WKViewCreate):
* UIProcess/API/C/gtk/WKView.h:
2014-11-07 Conrad Shultz <conrad_shultz@apple.com>
"Lookup" action menu should read "Look up"
https://bugs.webkit.org/show_bug.cgi?id=138509
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]):
2014-11-07 Beth Dakin <bdakin@apple.com>
Null deref performing Lookup on Apple Trailers full screen button
https://bugs.webkit.org/show_bug.cgi?id=138513
-and corresponding-
rdar://problem/18909699
Reviewed by Tim Horton.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupForSelection):
2014-11-07 Anshu Chimala <anshu@apple.com>
Make it possible to associate snapshots with back/forward list items other than the current item.
https://bugs.webkit.org/show_bug.cgi?id=138490
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare -saveBackForwardSnapshotForItem:, an alternative to -saveBackForwardSnapshotForCurrentItem that accepts a
back/forward list item as an argument.
* UIProcess/API/mac/WKView.mm:
(-[WKView saveBackForwardSnapshotForItem:]):
Pass the provided back/forward list item along to WebPageProxy::recordNavigationSnapshot().
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::recordNavigationSnapshot):
Overloaded to optionally take a back/forward list item as an argument. If one isn't provided, default to the current item
as before; otherwise, associate the snapshot with whichever item was provided.
* UIProcess/WebPageProxy.h:
Declare the new recordNavigationSnapshot() overload.
* UIProcess/mac/ViewSnapshotStore.h:
Make recordSnapshot() take a back/forward list item as an argument.
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::recordSnapshot):
Store the snapshot in the provided back/forward list item instead of in the current item.
2014-11-07 Tim Horton <timothy_horton@apple.com>
Popovers do not dismiss when navigating back and forth using gestures
https://bugs.webkit.org/show_bug.cgi?id=138512
<rdar://problem/18900200>
Reviewed by Beth Dakin.
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::navigationGestureDidBegin):
Dismiss action menu related popovers when navigation gestures begin.
2014-11-07 Beth Dakin <bdakin@apple.com>
Action menu preview popover should dismiss on scroll
https://bugs.webkit.org/show_bug.cgi?id=138511
-and corresponding-
rdar://problem/18901445
Reviewed by Tim Horton.
This patch re-names dismissActionMenuDataDetectorPopovers() to
dismissActionMenuPopovers() and also calls _clearPreviewPopover from that method
as well.
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
(-[WKView _dismissActionMenuPopovers]):
(-[WKView _dismissActionMenuDataDetectorPopovers]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::dismissActionMenuPopovers):
(WebKit::PageClientImpl::dismissActionMenuDataDetectorPopovers): Deleted.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController dismissActionMenuPopovers]):
(-[WKActionMenuController dismissActionMenuDataDetectorPopovers]): Deleted.
2014-11-07 Beth Dakin <bdakin@apple.com>
Support action menus for whitespace in editable areas
https://bugs.webkit.org/show_bug.cgi?id=138488
-and corresponding-
rdar://problem/18877717
Reviewed by Tim Horton.
Very simple menu for whitespace in editable areas.
* Shared/API/c/WKActionMenuTypes.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForWhitespaceInEditableArea]):
(-[WKActionMenuController _defaultMenuItems:]):
2014-11-07 Beth Dakin <bdakin@apple.com>
Invoking an action menu should dismiss existing selection
https://bugs.webkit.org/show_bug.cgi?id=138496
-and corresponding-
rdar://problem/18892787
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
2014-11-07 Eric Carlson <eric.carlson@apple.com>
[iOS] Update optimized fullscreen media controls
https://bugs.webkit.org/show_bug.cgi?id=138493
Reviewed by Brent Fulgham.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Initialize GetMediaUIImageData.
2014-11-07 Antti Koivisto <antti@apple.com>
Add cache coders
https://bugs.webkit.org/show_bug.cgi?id=138413
Reviewed by Anders Carlsson.
Add encoding and decoding support for cache types.
This is largely a copy of the IPC coder classes with some unnecessary features removed.
The coders compute a type-sensitive checksum that can be used to verify the data integrity.
The code is behind ENABLE(NETWORK_CACHE) and not yet used.
* NetworkProcess/cache: Added.
* NetworkProcess/cache/NetworkCacheCoder.h: Added.
* NetworkProcess/cache/NetworkCacheCoders.cpp: Added.
* NetworkProcess/cache/NetworkCacheCoders.h: Added.
* NetworkProcess/cache/NetworkCacheDecoder.cpp: Added.
* NetworkProcess/cache/NetworkCacheDecoder.h: Added.
* NetworkProcess/cache/NetworkCacheEncoder.cpp: Added.
* NetworkProcess/cache/NetworkCacheEncoder.h: Added.
* WebKit2.xcodeproj/project.pbxproj:
2014-11-06 Conrad Shultz <conrad_shultz@apple.com>
Clients should be able to customize the view used for page previews
https://bugs.webkit.org/show_bug.cgi?id=138447
Reviewed by Tim Horton.
Add SPI to WKView that clients can use to customize the view used in the page preview popover.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare -_viewForPreviewingURL:initialFrameSize:.
* UIProcess/API/mac/WKView.mm:
(-[WKView _viewForPreviewingURL:initialFrameSize:]):
Return nil in the default implementation.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKPagePreviewViewController loadView]):
Only spin up a WKWebView if the delegate (and, therefore, the presenting WKView) doesn't supply a custom view.
(-[WKActionMenuController pagePreviewViewController:viewForPreviewingURL:initialFrameSize:]):
WKPagePreviewViewControllerDelegate method; wrap the WKView SPI.
2014-11-05 Jer Noble <jer.noble@apple.com>
De-templatize Timer
https://bugs.webkit.org/show_bug.cgi?id=138450
Reviewed by Anders Carlsson.
Remove template specifiers from Timer.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::bufferingTimerFired):
* NetworkProcess/NetworkResourceLoader.h:
* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::sampleTimerFired):
(WebKit::WebMemorySampler::stopTimerFired):
* Shared/WebMemorySampler.h:
* Shared/mac/RemoteLayerBackingStoreCollection.h:
* Shared/mac/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
* UIProcess/API/efl/EwkView.cpp:
(EwkView::displayTimerFired):
* UIProcess/API/efl/EwkView.h:
* UIProcess/efl/TextCheckerClientEfl.cpp:
(TextCheckerClientEfl::languagesUpdateTimerFired):
(TextCheckerClientEfl::spellCheckingSettingChangeTimerFired):
* UIProcess/efl/TextCheckerClientEfl.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::layerFlushTimerFired):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::processSuspensionCleanupTimerFired):
(WebKit::WebProcess::nonVisibleProcessCleanupTimerFired):
* WebProcess/WebProcess.h:
2014-11-06 Dean Jackson <dino@apple.com>
[filters2] Support for backdrop-filter
https://bugs.webkit.org/show_bug.cgi?id=138384
<rdar://problem/18874494>
Reviewed by Simon Fraser.
Take 2!! Previous patch was rolled out.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext): Handle LayerTypeBackdropLayer in the switch.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::description): Describe a backdrop layer.
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(+[WKBackdropView layerClass]): Define CABackdropLayer and use it as the class.
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeHost.mm: Ditto.
(WebKit::RemoteLayerTreeHost::createLayer):
2014-11-06 Tim Horton <timothy_horton@apple.com>
Data detectors popover points at the first line of the detected item
https://bugs.webkit.org/show_bug.cgi?id=138471
<rdar://problem/18893079>
Reviewed by Sam Weinig.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::scanForDataDetectedItems):
Determine the bounding box of all quads of the detected item's text.
This way, the popover will point at the border of the item, instead of
right at the very first line.
2014-11-06 Beth Dakin <bdakin@apple.com>
Preview views often misplaced inside popover
https://bugs.webkit.org/show_bug.cgi?id=138472
Reviewed by Tim Horton.
This patch makes the popover maintain aspect ratio, and it uses the final scale of
that popover to scale the preview view as well.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKPagePreviewViewController initWithPageURL:mainViewSize:popoverToViewScale:]):
(-[WKPagePreviewViewController loadView]):
(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
(-[WKActionMenuController _targetSize:fitsInAvailableSpace:]):
(-[WKActionMenuController _preferredSizeForPopoverPresentedFromOriginRect:]):
(-[WKPagePreviewViewController initWithPageURL:]): Deleted.
2014-11-06 Tim Horton <timothy_horton@apple.com>
TextIndicatorWindow's bounce animation is lopsided when indicating two short lines of text
https://bugs.webkit.org/show_bug.cgi?id=138458
Reviewed by Simon Fraser.
Previously, the TextIndicator's frame() covered the entire selection highlight bounds.
This was undesirable in cases where the highlight included areas far outside the
bounds of the selected text, as the TextIndicatorWindow's 'bounce' animation
would be misaligned (centered on the highlight instead of on the text).
* Shared/TextIndicator.cpp:
Get rid of the many-argument TextIndicator::create, because it was only used
internally, and have createWithSelectionInFrame make a ::Data instead.
(WebKit::TextIndicator::createWithSelectionInFrame):
Compute and store the bounding rect of all of the selected text rects, and store
all of the text rects relative to that bounding rect instead of relative to the
selection highlight bounds. We do this because the selection highlight bounds
often includes area which is far outside of the text bounds (in the case of a
selection that spans multiple lines), and causes the text indicator bounce
animation to bounce in a lopsided manner.
(WebKit::TextIndicator::TextIndicator):
Adjust to the rename of textRectsInSelectionRectCoordinates -> textRectsInBoundingRectCoordinates.
(WebKit::TextIndicator::frameRect):
Instead of the TextIndicator's frame being the selection highlight bounds,
it is now the bounds of all of the text rects.
(WebKit::TextIndicator::draw):
Translate into the image by the difference between the selection highlight bounds
and the text bounding rect. This is necessary because the content image is still generated
covering the entire selection highlight bounds, but the text rects are in text-rect-bounds coordinates.
(WebKit::TextIndicator::Data::encode):
(WebKit::TextIndicator::Data::decode):
Adjust to the rename of textRectsInSelectionRectCoordinates -> textRectsInBoundingRectCoordinates.
Encode/decode textBoundingRectInWindowCoordinates.
* Shared/TextIndicator.h:
(WebKit::TextIndicator::contentImage): Deleted.
Get rid of an unnecessary getter and constructor.
2014-11-06 Tim Horton <timothy_horton@apple.com>
Only provide a single result to the action menu DDActionContext
https://bugs.webkit.org/show_bug.cgi?id=138469
<rdar://problem/18869036>
Reviewed by Anders Carlsson.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::scanForDataDetectedItems):
Only provide one result; secondary results can be extremely unrelated to
the primary one and confuse Data Detectors further down the line.
2014-11-06 Tim Horton <timothy_horton@apple.com>
Null deref in rangeForDictionaryLookupAtHitTestResult on occasion
https://bugs.webkit.org/show_bug.cgi?id=138459
<rdar://problem/18872825>
Reviewed by Andreas Kling.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::rangeForDictionaryLookupAtHitTestResult):
rangeExpandedAroundPositionByCharacters can return null.
2014-11-06 Tim Horton <timothy_horton@apple.com>
Prefer link action menus over images
https://bugs.webkit.org/show_bug.cgi?id=138461
<rdar://problem/18768377>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItems:]):
Swap the priority of links and images.
2014-11-05 Sam Weinig <sam@webkit.org>
Use std::unique_ptr for TileController
https://bugs.webkit.org/show_bug.cgi?id=138429
Reviewed by Anders Carlsson.
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
(WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
2014-11-06 Dan Bernstein <mitz@apple.com>
iOS build fix.
* WebProcess/Plugins/PluginController.h:
2014-11-06 Daniel Bates <dabates@apple.com>
[iOS] WebProcess needs to take a background task assertion to prevent being killed
for "suspended with locked system files"
https://bugs.webkit.org/show_bug.cgi?id=138155
<rdar://problem/17939303>
Reviewed by Anders Carlsson.
Mitigates an issue where the WebProcess may be killed when suspended holding locked files
by allowing the WebProcess to notify the UIProcess when it is holding such files so that
both can continue to run for a period of time after the UIProcess transitions to the
background. In particular, the WebProcess notifies the UIProcess that it is holding- or
relinquished- a locked file when it begins and ends a sequence of SQLite transactions,
respectively.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::disconnect): Relinquish an existing background task assertion
when the WebProcess disconnects. Among other situations, the WebProcess may disconnect as
a result of being suspended holding locked files even when the UIProcess requested a
background task assertion (i.e. it may have exceeded its background time limit).
(WebKit::WebProcessProxy::setIsHoldingLockedFiles): Added. Either acquires a new background
task assertion or relinquishes an existing one.
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in: Added message SetIsHoldingLockedFiles(bool). The WebProcess
dispatches this message to inform the UIProcess that it is holding- or relinquished- a locked file.
* WebKit2.xcodeproj/project.pbxproj: Added files WebSQLiteDatabaseTracker.{cpp, h}.
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp: Added.
(WebKit::WebSQLiteDatabaseTracker::supplementName): Added.
(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker): Added.
(WebKit::WebSQLiteDatabaseTracker::initialize): Register to receive SQLiteDatabaseTrackerClient callbacks.
(WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction): Inform the HysteresisActivity object on
the main thread that we began a transaction so that it calls WebSQLiteDatabaseTracker::started().
(WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction): Inform the HysteresisActivity object on
the main thread that we finished a transaction so that it may eventually call WebSQLiteDatabaseTracker::stopped().
(WebKit::WebSQLiteDatabaseTracker::started): Notify the UIProcess that the WebProcess is holding
a locked file.
(WebKit::WebSQLiteDatabaseTracker::stopped): Notify the UIProcess that the WebProcess has
relinquished the locked file.
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h: Added. We use a HysteresisActivity object
to coalesce SetIsHoldingLockedFiles(false) messages as an optimization to minimize the number of
messages exchanged between the UIProcess and WebProcess when a web page performs SQLite transactions
in batches.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess): Instantiate the supplement WebSQLiteDatabaseTracker when building
for iOS.
2014-11-06 Alberto Garcia <berto@igalia.com>
[GTK] [Stable] webkitgtk 2.6.1 fails to load flashplugin
https://bugs.webkit.org/show_bug.cgi?id=137849
Reviewed by Carlos Garcia Campos.
NPPVpluginNeedsXEmbed is a boolean value, so it should normally
use an NPBool (1 byte). However some plugins (the Flash player in
particular) are using an int instead, so we have to do it as well
else we'll end up corrupting the stack.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformPostInitialize):
2014-11-06 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add context menu API to Web Process Extensions
https://bugs.webkit.org/show_bug.cgi?id=138311
Reviewed by Gustavo Noronha Silva.
Add WebKitWebPage::context-menu signal, similar to the
WebKitWebView one, but that receives a WebKitWebHitTestResult, a
class that extends WebKitTestResult to provide the WebKitDOMNode
from the Web Process Extensions API. This makes WebKitContextMenu,
WebKitContextMenuItem and WebKitTestResult classes shared between
UI and Web Extensions APIs. In addition to be able to customize
the context menu, it also provides API to set user data, as a
GVariant, in the Web Process that is sent to the UI Process.
* PlatformGTK.cmake: Add new files.
* UIProcess/API/gtk/WebKitContextMenu.cpp:
(webkit_context_menu_set_user_data): Add user data to the context
menu as a GVariant.
(webkit_context_menu_get_user_data): Get the user data previously
set with webkit_context_menu_set_user_data() either from the Web
or UI processes.
* UIProcess/API/gtk/WebKitContextMenu.h:
* UIProcess/API/gtk/WebKitContextMenuActions.h:
* UIProcess/API/gtk/WebKitContextMenuClient.cpp:
(getContextMenuFromProposedMenu): Convert the received user data
into a GVariant and pass it to webkitWebViewPopulateContextMenu().
* UIProcess/API/gtk/WebKitContextMenuItem.h:
* UIProcess/API/gtk/WebKitForwardDeclarations.h:
* UIProcess/API/gtk/WebKitHitTestResult.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewPopulateContextMenu): Set the user data received
from the Web Process to the WebKitContextMenu before emitting
WebKitWebView::context-menu.
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for WebKitWebHitTestResult.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
* UIProcess/API/gtk/docs/webkit2gtk.types: Add webkit_web_hit_test_result_get_type.
* WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp: Added.
(webkitWebHitTestResultGetProperty): Add getter for node property.
(webkitWebHitTestResultSetProperty): Add setter for node property.
(webkit_web_hit_test_result_class_init): Add node property.
(webkitWebHitTestResultCreate): Create a new
WebKitWebHitTestResult for the given InjectedBundleHitTestResult.
(webkit_web_hit_test_result_get_node): Return the WebKitDOMNode.
* WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.h: Added.
* WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResultPrivate.h: Added.
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(getContextMenuFromDefaultMenu): Build a WebKitContextMenu and
WebKitWebHitTestResult and emit WebKitWebPage::context-menu signal.
(webkit_web_page_class_init): Add WebKitWebPage::context-menu signal.
(webkitWebPageCreate): Add implementation for getContextMenuFromDefaultMenu.
* WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:
2014-11-06 Ryuan Choi <ryuan.choi@gmail.com>
[EFL] Remove m_scrollPosition from CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=138419
Reviewed by Gyuyoung Kim.
m_scrollPosition of CoordinatedGraphicsScene is only to adjust the position
of fixed element. But this adjustment is only called by paintToCurrentGLContext()
and WebView can pass same information to the parameter of that method.
* UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
(WebCore::CoordinatedGraphicsScene::setScrollPosition): Deleted.
* UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h:
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::paintToCurrentGLContext):
2014-11-05 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r175672.
https://bugs.webkit.org/show_bug.cgi?id=138455
Tries to make backdrop layers on every layer, asserts on
Mavericks (Requested by smfr on #webkit).
Reverted changeset:
"[filters2] Support for backdrop-filter"
https://bugs.webkit.org/show_bug.cgi?id=138384
http://trac.webkit.org/changeset/175672
2014-11-04 Ada Chan <adachan@apple.com>
Figure out whether a plug-in is playing audio.
https://bugs.webkit.org/show_bug.cgi?id=137219
Reviewed by Anders Carlsson.
Handle the setting of the NPPVpluginIsPlayingAudio variable.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::setPluginIsPlayingAudio):
Send a SetPluginIsPlayingAudio message to the WebProcess.
* PluginProcess/PluginControllerProxy.h:
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::NPN_SetValue):
Handle NPPVpluginIsPlayingAudio. Call NetscapePlugin::setIsPlayingAudio().
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::setIsPlayingAudio):
Call PluginControllerProxy::setPluginIsPlayingAudio().
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/PluginController.h:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::setPluginIsPlayingAudio):
Call PluginView::setPluginIsPlayingAudio().
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginProxy.messages.in:
Add the SetPluginIsPlayingAudio message.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::PluginView):
Initialize m_pluginIsPlayingAudio.
(WebKit::PluginView::~PluginView):
Remove itself from the Document's list of AudioProducers.
(WebKit::PluginView::initializePlugin):
Add itself to the Document's list of AudioProducers.
(WebKit::PluginView::pageMutedStateDidChange):
Add a FIXME.
(WebKit::PluginView::setPluginIsPlayingAudio):
If m_pluginIsPlayingAudio has changed, tell the Document to update its audio playing state.
* WebProcess/Plugins/PluginView.h:
Now inherits AudioProducer.
2014-11-05 Dan Bernstein <mitz@apple.com>
Tried to fix the GTK build.
* PlatformGTK.cmake: Removed references to deletion UI resources that have been removed.
2014-11-04 Dean Jackson <dino@apple.com>
[filters2] Support for backdrop-filter
https://bugs.webkit.org/show_bug.cgi?id=138384
<rdar://problem/18874494>
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext): Handle LayerTypeBackdropLayer in the switch.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::description): Describe a backdrop layer.
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(+[WKBackdropView layerClass]): Define CABackdropLayer and use it as the class.
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeHost.mm: Ditto.
(WebKit::RemoteLayerTreeHost::createLayer):
2014-11-05 Ryuan Choi <ryuan.choi@gmail.com>
[EFL] Improve previous temporary fix against drawing (0,0) position before rendering content of next web page
https://bugs.webkit.org/show_bug.cgi?id=138305
Reviewed by Gyuyoung Kim.
WebKit2 has freezed layer tree until frame load completion since r101838.
In EFL port, we unfreeze it when PageViewportController::pageTransitionViewportReady() is called though,
UIProcess on EFL port updates cairo surface during the freezing time of layer tree.
Thus UIProcess should not update the layer trees until the layerTreeState is unfrozen.
* UIProcess/API/efl/EwkView.h: Removed previous workarounds.
(EwkView::setWaitingForNewPage): Deleted.
(EwkView::waitingForNewPage): Deleted.
(EwkView::didCommitNewPage): Deleted.
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::PageViewportController):
(WebKit::PageViewportController::didCommitLoad):
(WebKit::PageViewportController::didRenderFrame):
(WebKit::PageViewportController::syncVisibleContents):
* UIProcess/CoordinatedGraphics/PageViewportController.h:
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::didCommitLoadForFrame):
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::didChangeVisibleContents):
* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::didRenderFrame):
2014-11-05 Timothy Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/mac/WKActionMenuController.mm:
2014-11-05 Dan Bernstein <mitz@apple.com>
Remove the unused deletion UI feature
https://bugs.webkit.org/show_bug.cgi?id=138442
Rubber-stamped by Alexey Proskuryakov.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::shouldShowDeleteInterface): Deleted.
* WebProcess/WebCoreSupport/WebEditorClient.h:
2014-11-05 Conrad Shultz <conrad_shultz@apple.com>
It should be possible to open a page preview by clicking on it
https://bugs.webkit.org/show_bug.cgi?id=138445
Reviewed by Tim Horton.
Add a click recognizer to WKPagePreviewViewController and plumb it through to WKActionMenuController.
* UIProcess/mac/WKActionMenuController.mm:
Declare <WKPagePreviewViewControllerDelegate>, currently home to just a single method.
(-[WKPagePreviewViewController loadView]):
Configure and add a click gesture recognizer to the WKWebView.
(-[WKPagePreviewViewController _clickRecognized:]):
Gesture recognizer action; send -pagePreviewViewControllerWasClicked: to the delegate.
(-[WKActionMenuController willDestroyView:]):
Extract code to -_clearPreviewPopover.
(-[WKActionMenuController didCloseMenu:withEvent:]):
Ditto.
(-[WKActionMenuController _createPreviewPopoverForURL:]):
Set ourself as the delegate of the page preview controller.
(-[WKActionMenuController _clearPreviewPopover]):
Extracted from various other methods; if appropriate, nil out the preview view controller's delegate.
(-[WKActionMenuController popoverWillClose:]):
Extract code to -_clearPreviewPopover.
(-[WKActionMenuController pagePreviewViewControllerWasClicked:]):
WKPagePreviewViewControllerDelegate method; open the URL of the clicked page.
2014-11-05 Beth Dakin <bdakin@apple.com>
Page preview popover should show scaled-down web content
https://bugs.webkit.org/show_bug.cgi?id=138444
Reviewed by Anders Carlsson.
Instead of keeping the preferred size in the controller, keep the main view’s
size, and then scale the bounds of the popover’s view using that and the scale
factor as a constant. Set the size of the popover explicitly so that it doesn’t
get the view’s size. This will cause it to scale the WKWebView.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKPagePreviewViewController initWithPageURL:]):
(-[WKPagePreviewViewController loadView]):
(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
(-[WKActionMenuController _preferredSizeForPopoverPresentedFromOriginRect:]):
2014-11-05 Conrad Shultz <conrad_shultz@apple.com>
Page preview popovers sometimes cover their originating element
https://bugs.webkit.org/show_bug.cgi?id=138437
Reviewed by Beth Dakin.
If a popover is sufficiently large, and the originating element is in a particular location, it's
possible that the popover can't be positioned in a manner that doesn't occlude the originating element.
Address this by scaling down the popover content if it can't fit entirely between the originating
element and the screen edge.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _previewURLFromActionMenu:]):
Update to use -_createPreviewPopoverForURL:originRect:.
(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
Renamed from -_createPreviewPopoverForURL:; extract code to -_preferredSizeForPopoverPresentedFromOriginRect:.
(-[WKActionMenuController _preferredSizeForPopoverPresentedFromOriginRect:]):
Compute a size that is as large as possible while keeping the popover between the origin rect and screen edge
(with an arbitrary padding applied to keep from directly abutting the screen edge).
(-[WKActionMenuController _createPreviewPopoverForURL:]): Deleted.
2014-11-05 Alexey Proskuryakov <ap@apple.com>
fast/dom/remove-body-during-body-replacement2.html fails on WK2
https://bugs.webkit.org/show_bug.cgi?id=138334
Reviewed by Anders Carlsson.
Added an SPI to focus a frame.
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
(WKBundleFrameFocus):
* WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setViewState):
2014-11-05 Tim Horton <timothy_horton@apple.com>
Select Data Detectors results instead of just highlighting them
https://bugs.webkit.org/show_bug.cgi?id=138435
<rdar://problem/18877675>
Reviewed by Beth Dakin.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::selectLastActionMenuRange):
(WebKit::WebPageProxy::selectLookupTextAtLocation): Deleted.
Rename selectLookupTextAtLocation to selectLastActionMenuRange.
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
Do a real selection for single-item Data Detector menus; show the yellow highlight otherwise.
Adopt selectLastActionMenuRange for non-detected text.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::selectLastActionMenuRange):
(WebKit::WebPage::selectLookupTextAtLocation): Deleted.
Store the last (detected data or Lookup-derived) action menu range.
Select it upon selectLastActionMenuRange.
2014-11-04 Jon Honeycutt <jhoneycutt@apple.com>
WebContent crash in WebPage::selectWithGesture()
<https://bugs.webkit.org/show_bug.cgi?id=138399>
<rdar://problem/18550631>
This crash occurs when the web process receives a "TapAndAHalf" gesture
with the "Changed" state without having received a "TapAndAHalf"
gesture with the "Began" state.
No test possible.
Reviewed by Simon Fraser.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture):
Null check m_currentWordRange before dereferencing it.
2014-11-05 Conrad Shultz <conrad_shultz@apple.com>
Disable action menus on page previews
https://bugs.webkit.org/show_bug.cgi?id=138431
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView _shouldIgnoreMouseEvents]):
Renamed from -shouldIgnoreMouseEvents since this isn't actually public.
(-[WKView swipeWithEvent:]):
(-[WKView mouseMoved:]):
(-[WKView mouseDown:]):
(-[WKView mouseUp:]):
(-[WKView mouseDragged:]):
Updated to reflect method rename.
(-[WKView shouldIgnoreMouseEvents]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
Expose -_shouldIgnoreMouseEvents.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
Cancel the menu if the presenting WKView should ignore mouse events.
2014-11-05 Beth Dakin <bdakin@apple.com>
Action menu URL preview should "peek," i.e. appear when the menu item is
highlighted
https://bugs.webkit.org/show_bug.cgi?id=138432
-and corresponding-
rdar://problem/18774264
Reviewed by Anders Carlsson.
New ivars. Keep a reference to the popover, and a BOOL that indicates whether we
should close the popover when the menu goes away.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
Re-set the preview bool to NO whenever we are about to pop up a new menu.
(-[WKActionMenuController prepareForMenu:withEvent:]):
Close the popover when the menu closes unless _shouldKeepPreviewPopoverOpen has
been set.
(-[WKActionMenuController didCloseMenu:withEvent:]):
Set _shouldKeepPreviewPopoverOpen.
(-[WKActionMenuController _keepPreviewOpen:]):
Re-factored to use ivar.
(-[WKActionMenuController _previewURLFromActionMenu:]):
(-[WKActionMenuController _createPreviewPopoverForURL:]):
Now call _previewURLFromActionMenu on menu item highlight.
(-[WKActionMenuController menu:willHighlightItem:]):
NSPopover delegate method so that we can keep our BOOL and ivar accurate in the
case where the popover is closed by some other mechanism than the action menu
going away.
(-[WKActionMenuController popoverWillClose:]):
New selector for the preview. Now when this item is actually selected, we just
want to set the BOOL _shouldKeepPreviewPopoverOpen to YES so that we keep the
preview open.
(-[WKActionMenuController _createActionMenuItemForTag:]):
2014-11-05 Conrad Shultz <conrad_shultz@apple.com>
Disable interaction with action menu page previews
https://bugs.webkit.org/show_bug.cgi?id=138400
Reviewed by Tim Horton.
Expand on the existing -[WKView shouldIgnoreMouseEvents] by adding facilities to suppress handling
of all non-wheel events, effectively creating a scroll-only web view. Deploy this in
WKPagePreviewViewController.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare the OS X-only ignoresNonWheelMouseEvents SPI.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _ignoresNonWheelMouseEvents]):
(-[WKWebView _setIgnoresNonWheelMouseEvents:]):
Wrap the underlying WKView methods.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
Declare the OS X-only ignoresNonWheelMouseEvents property.
* UIProcess/API/mac/WKView.mm:
Add _ignoresNonWheelMouseEvents to WKViewData.
(-[WKView shouldIgnoreMouseEvents]):
Include a check for _ignoresNonWheelMouseEvents.
(-[WKView _setIgnoresNonWheelMouseEvents:]):
Set the ivar in WKViewData.
(-[WKView _ignoresNonWheelMouseEvents]):
Fetch the ivar in WKViewData.
(-[WKView _shouldIgnoreWheelEvents]):
Implement the old -shouldIgnoreMouseEvents behavior.
(-[WKView scrollWheel:]):
-shouldIgnoreMouseEvents -> -_shouldIgnoreWheelEvents.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKPagePreviewViewController loadView]):
Configure the WKWebView to ignore non-wheel mouse events; use RetainPtr for the WKWebView.
2014-11-03 Dean Jackson <dino@apple.com>
Add ENABLE_FILTERS_LEVEL_2 feature guard.
https://bugs.webkit.org/show_bug.cgi?id=138362
Reviewed by Tim Horton.
Add a new feature define for Level 2 of CSS Filters.
http://dev.w3.org/fxtf/filters-2/
* Configurations/FeatureDefines.xcconfig:
2014-11-05 Alberto Garcia <berto@igalia.com>
NetscapePlugin: NPP_GetValue should receive a pointer to NPBool, not bool
https://bugs.webkit.org/show_bug.cgi?id=138418
Reviewed by Carlos Garcia Campos.
Replace bool with NPBool, which is actually an unsigned char.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformPostInitialize):
2014-11-05 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add WebKitWebResource::failed-with-tls-errors signal
https://bugs.webkit.org/show_bug.cgi?id=137862
Reviewed by Gustavo Noronha Silva.
When a resource load fails due to TLS errors emit WebKitWebResource::failed-with-tls-errors
signal instead of WebKitWebResource::failed so that TLS errors information and certificate
are provided.
* UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
(didReceiveWebViewMessageFromInjectedBundle): Check if the error
is a TLS failure to emit failed-with-tls-errors instead of failed.
* UIProcess/API/gtk/WebKitWebResource.cpp:
(webkit_web_resource_class_init): Add WebKitWebResource::failed-with-tls-errors signal.
(webkitWebResourceFailedWithTLSErrors): Emit failed-with-tls-errors and finish signals.
* UIProcess/API/gtk/WebKitWebResourcePrivate.h:
2014-11-05 Shivakumar JM <shiva.jm@samsung.com>
Fix build warning in WebKit2/WebProcess module.
https://bugs.webkit.org/show_bug.cgi?id=138410
Reviewed by Alexey Proskuryakov.
Fix build warning by removing parameter name
* WebProcess/WebPage/WebPageOverlay.h:
(WebKit::WebPageOverlay::Client::prepareForActionMenu):
2014-11-05 Antti Koivisto <antti@apple.com>
Move HTTPHeaderMap encoding to the class
https://bugs.webkit.org/show_bug.cgi?id=138412
Reviewed by Andreas Kling.
* PluginProcess/PluginControllerProxy.cpp:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<HTTPHeaderMap>::encode): Deleted.
(IPC::ArgumentCoder<HTTPHeaderMap>::decode): Deleted.
Make these HTTPHeaderMap members instead so they can access internals and can be used elsewhere.
* Shared/WebCoreArgumentCoders.h:
2014-11-04 Beth Dakin <bdakin@apple.com>
Speculative build fix.
* UIProcess/API/mac/WKView.mm:
(-[WKView _dismissActionMenuDataDetectorPopovers]):
* UIProcess/API/mac/WKViewInternal.h:
2014-11-04 Beth Dakin <bdakin@apple.com>
Un-anchor data detector popovers on scroll
https://bugs.webkit.org/show_bug.cgi?id=138385
-and corresponding-
rdar://problem/18869345
Reviewed by Tim Horton.
Whenever we dismiss the dictionary popover, and on scroll, we should try to
dismiss the data detector popovers. Right now we don’t have the ability to know if
a dismiss succeeded, so we will settle for un-anchoring the popover.
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
(-[WKView _dismissActionMenuDataDetetcorPopovers]):
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::dismissActionMenuDataDetetcorPopovers):
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController dismissActionMenuDataDetetcorPopovers]):
2014-11-04 Andy Estes <aestes@apple.com>
[iOS] WKPDFView should scroll to a fragment when loading a PDF
https://bugs.webkit.org/show_bug.cgi?id=138404
Reviewed by Tim Horton.
WKPDFView already knew how to scroll to a page number fragment during a same-document navigation, but it didn't
know to do so when loading a PDF whose URL already contained a page number fragment. This could happen if the
user long-presses a page number link and taps 'Open in New Tab'.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_setContentProviderData:suggestedFilename:]): Called _scrollToFragment:.
(-[WKPDFView _scrollToFragment:]): Moved fragment scrolling code to here from web_didSameDocumentNavigation:.
(-[WKPDFView web_didSameDocumentNavigation:]): Called _scrollToFragment.
2014-11-04 Andy Estes <aestes@apple.com>
[iOS] Stop using +[NSURL _web_URLWithWTFString:relativeToURL:] in WKPDFView
https://bugs.webkit.org/show_bug.cgi?id=138357
Rubber-stamped by Dan Bernstein.
During patch review for r175595 I changed from using +URLWithString:relativeToURL: to using
+_web_URLWithWTFString:relativeToURL: to append a page number fragment to the document URL.
If the base URL already contains a fragment, +_web_URLWithWTFString:relativeToURL: appends to the existing
fragment whereas +URLWithString:relativeToURL: replaces the existing fragment. I want the latter behavior.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _URLForLinkAnnotation:]):
2014-11-04 Tim Horton <timothy_horton@apple.com>
Add bundle SPI allowing PageOverlay to customize the action menu
https://bugs.webkit.org/show_bug.cgi?id=138388
<rdar://problem/18875579>
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
Bump the BundlePageOverlay client version.
(WKBundlePageOverlayCreate):
(WKBundlePageOverlaySetAccessibilityClient):
Don't return if we have a version; the version check happens later anyway,
and now it is valid to have a version >0.
* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
Bump the BundlePageOverlay client version.
Add prepareForActionMenu callback.
* WebProcess/WebPage/WebPageOverlay.h:
(WebKit::WebPageOverlay::Client::prepareForActionMenu):
* WebProcess/WebPage/WebPageOverlay.cpp:
(WebKit::overlayMap):
(WebKit::WebPageOverlay::WebPageOverlay):
(WebKit::WebPageOverlay::~WebPageOverlay):
(WebKit::WebPageOverlay::fromCoreOverlay):
(WebKit::WebPageOverlay::pageOverlayDestroyed):
Keep track of a map of PageOverlay to WebPageOverlay.
(WebKit::WebPageOverlay::prepareForActionMenu):
Forward prepareForActionMenu to the client.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Iterate through the overlays and let them prepareForActionMenu;
the first overlay that returns true wins. If no overlays want to
do anything, hand preparation along to the context menu client.
2014-11-03 Jeremy Jones <jeremyj@apple.com>
Add button and enable optimized fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=138351
Reviewed by Eric Carlson.
Add IsOptimizedFullscreenSupported to enable the feature only where appropriate.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): add IsOptimizedFullscreenSupported
2014-11-04 Andy Estes <aestes@apple.com>
[iOS] Add long press support for links in WKPDFView
https://bugs.webkit.org/show_bug.cgi?id=138357
Reviewed by Dan Bernstein.
Use WKActionSheetAssistant to show a link action sheet in response to long-pressing on a link. Have WKPDFView
conform to WKActionSheetAssistantDelegate in order to respond to the open and copy actions as well as to
provide the link's URL and position information to WKActionSheetAssistant. The long-pressed link is highlighted
for .75 seconds before the sheet is displayed in order to match UIWebPDFView.
* UIProcess/ios/WKActionSheetAssistant.h: Made protocol methods that WKPDFView doesn't implement optional.
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant updatePositionInformation]): Checked if delegate responds to
updatePositionInformationForActionSheetAssistant: before calling.
(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]): Checked if delegate responds to
actionSheetAssistant:willStartInteractionWithElement: before calling.
(-[WKActionSheetAssistant cleanupSheet]): Checked if delegate responds to actionSheetAssistantDidStopInteraction:
before calling.
* UIProcess/ios/WKPDFView.h: Conformed to WKActionSheetAssistantDelegate.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_initWithFrame:webView:]): Instantiated a WKActionSheetAssistant and set self as its delegate.
(-[WKPDFView _highlightLinkAnnotation:forDuration:completionHandler:]): Moved highlight drawing to here from
annotation:wasTouchedAtPoint:controller: in order to be reused for long-press.
(-[WKPDFView _URLForLinkAnnotation:]): Moved URL creation to here from annotation:wasTouchedAtPoint:controller:
in order to be reused for long-press. Generated an absolute URL since this URL might go into the pasteboard.
(-[WKPDFView annotation:wasTouchedAtPoint:controller:]): Changed to call
_highlightLinkAnnotation:forDuration:completionHandler: and _URLForLinkAnnotation:.
(-[WKPDFView annotation:isBeingPressedAtPoint:controller:]): Set values on _positionInformation and called
-[WKActionSheetAssistant showLinkSheet] after showing a highlight for .75 seconds.
(-[WKPDFView positionInformation]): Returned _positionInformation.
(-[WKPDFView performAction:]): Added a UTF-8 text and URL representation of the pressed URL to the pasteboard.
(-[WKPDFView openElementAtLocation:]): Called WebPage::navigateToURLWithSimulatedClick().
(-[WKPDFView actionsForElement:defaultActions:]): Returned actions from UIClient::actionsForElement().
(-[WKPDFView _createHighlightViewWithFrame:]): Deleted.
2014-11-04 Anders Carlsson <andersca@apple.com>
Try to fix the 32-bit build.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForLink]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
2014-11-04 Conrad Shultz <conrad_shultz@apple.com>
Use a web view for Quick Look in action menus
https://bugs.webkit.org/show_bug.cgi?id=138370
Reviewed by Anders Carlsson.
Instead of using the QLPreviewBubble SPI, show a popover containing a web view. This currently
does not inherit any configuration from the presenting WKView and does not expose any
customization options.
* UIProcess/mac/WKActionMenuController.mm:
Declare new internal NSViewController subclass, WKPagePreviewViewController.
(-[WKPagePreviewViewController initWithPageURL:]):
Store the passed-in URL and set a somewhat arbitrary (iPhone 5 screen size) default preferred size.
(-[WKPagePreviewViewController loadView]):
Create a WKWebView and load the URL passed into the initializer.
(-[WKActionMenuController _previewURLFromActionMenu:]):
Renamed from -_quickLookURLFromActionMenu:; present the popover returned by -_createPreviewPopoverForURL:.
(-[WKActionMenuController _createPreviewPopoverForURL:]):
New helper method; return a popover that owns a _WKPagePreviewViewController configured to show a scaled-down web page.
(-[WKActionMenuController _createActionMenuItemForTag:]):
Update to reflect method rename.
(-[WKActionMenuController _quickLookURLFromActionMenu:]): Deleted.
2014-11-04 Chris Dumez <cdumez@apple.com>
Add ptr() method to Ref class
https://bugs.webkit.org/show_bug.cgi?id=138361
Reviewed by Darin Adler.
Use the new Ref::ptr() method.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createWebPage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setPreferences):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didNavigateWithNavigationData):
(WebKit::WebProcessProxy::didPerformClientRedirect):
(WebKit::WebProcessProxy::didPerformServerRedirect):
(WebKit::WebProcessProxy::didUpdateHistoryTitle):
2014-11-04 Andy Estes <aestes@apple.com>
[iOS] Include a WKActionSheetAssistant parameter in WKActionSheetAssistantDelegate methods
https://bugs.webkit.org/show_bug.cgi?id=137792
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction elementActionWithTitle:actionHandler:]):
(+[_WKElementAction elementActionWithType:customTitle:]):
(-[_WKElementAction _runActionWithElementInfo:forActionSheetAssistant:]):
* UIProcess/API/Cocoa/_WKElementActionInternal.h:
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant initialPresentationRectInHostViewForSheet]):
(-[WKActionSheetAssistant presentationRectInHostViewForSheet]):
(-[WKActionSheetAssistant updatePositionInformation]):
(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):
(-[WKActionSheetAssistant cleanupSheet]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView positionInformationForActionSheetAssistant:]):
(-[WKContentView updatePositionInformationForActionSheetAssistant:]):
(-[WKContentView actionSheetAssistant:performAction:]):
(-[WKContentView actionSheetAssistant:openElementAtLocation:]):
(-[WKContentView actionSheetAssistant:decideActionsForElement:defaultActions:]):
(-[WKContentView actionSheetAssistant:willStartInteractionWithElement:]):
(-[WKContentView actionSheetAssistantDidStopInteraction:]):
2014-11-04 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r175564 for !PLATFORM(COCOA).
* Shared/TextIndicator.cpp:
2014-11-04 Tim Horton <timothy_horton@apple.com>
Implement yellow highlight over data detected items
https://bugs.webkit.org/show_bug.cgi?id=138340
<rdar://problem/18840102>
Reviewed by Anders Carlsson.
* Shared/TextIndicator.cpp: Renamed from Source/WebKit2/UIProcess/TextIndicator.cpp.
* Shared/TextIndicator.h: Renamed from Source/WebKit2/UIProcess/TextIndicator.h.
Move TextIndicator to Shared.
Move all of the members to a Data struct.
Implement encode/decode for TextIndicator::Data, so it can be passed as
the argument to SetTextIndicator, and also as a field on ActionMenuHitTestResult.
Add 'createWithSelectionInFrame', which builds a TextIndicator
from the selection in the given frame.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Rename actionBoundingBox to detectedDataBoundingBox.
Store/encode/decode detectedDataTextIndicator.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setTextIndicator):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
Create a TextIndicator from the TextIndicator::Data.
Add an explicit ClearTextIndicator message instead of sending empty Data.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
If the text indicator is up when preparing for a new menu invocation, hide it.
(-[WKActionMenuController willOpenMenu:withEvent:]):
Show the text indicator when the menu opens, for data detected items.
(-[WKActionMenuController didCloseMenu:withEvent:]):
Hide the text indicator when the menu closes, unless we only had one item.
Then, we'll hide it in the DDActionContext completionHandler block.
(-[WKActionMenuController _showTextIndicator]):
(-[WKActionMenuController _hideTextIndicator]):
Added. Show and hide the text indicator based on the TextIndicator
data included in the action menu hit test result.
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Hide the text indicator when the data detector popover completes.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::getImageForFindMatch):
Make use of the newly-moved createSelectionSnapshot.
(WebKit::FindController::updateFindIndicator):
Make use of TextIndicator::createWithSelectionInFrame, which allows
us to share this code for building a TextIndicator with other callers.
(WebKit::FindController::hideFindIndicator):
(WebKit::getFindIndicatorBitmap): Deleted.
Move getFindIndicatorBitmap to WebFrame::createSelectionSnapshot.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSelectionSnapshot):
Moved from FindController's getFindIndicatorBitmap.
Now returns a ShareableBitmap instead of going ahead and making a Handle.
* WebProcess/WebPage/WebFrame.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::scanForDataDetectedItems):
(WebKit::textIndicatorForRange):
Temporarily change the selection to the given range, then use
TextIndicator::indicatorWithSelectionInFrame to acquire a TextIndicator,
then reset the selection.
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Create a TextIndicator from the data detected range.
2014-11-04 Andy Estes <aestes@apple.com>
Fix the iOS build after r175549.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):
2014-11-04 Darin Adler <darin@apple.com>
Eliminate ResourceBuffer and use SharedBuffer directly instead
https://bugs.webkit.org/show_bug.cgi?id=138174
Reviewed by Antti Koivisto.
* CMakeLists.txt: Removed WebResourceBuffer.cpp.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::sendBuffer): Use a reference instead of pointer.
* NetworkProcess/NetworkResourceLoader.h: Ditto.
* NetworkProcess/mac/NetworkDiskCacheMonitor.h: Ditto.
* NetworkProcess/mac/NetworkDiskCacheMonitor.mm:
(WebKit::NetworkDiskCacheMonitor::resourceBecameFileBacked): Ditto.
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer): Ditto.
* Shared/WebResourceBuffer.cpp: Removed.
* Shared/WebResourceBuffer.h: Removed.
* WebKit2.xcodeproj/project.pbxproj: Removed WebResourceBuffer.cpp/h.
* WebProcess/Network/NetworkProcessConnection.cpp: Removed unneeded includes.
(WebKit::NetworkProcessConnection::didCacheResource): Use a reference instead
of a pointer.
* WebProcess/Network/WebResourceLoadScheduler.cpp: Removed unneeded include.
* WebProcess/Network/WebResourceLoader.cpp: Ditto.
* WebProcess/Network/WebResourceLoader.h: Ditto.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: Ditto.
(WebKit::WebFrameLoaderClient::finishedLoading): Use SharedBuffer directly.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::source): Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInMainFrame): Refactored to make the relationship
between the buffer and the DataReference clearer and to avoid having a long-lived
DataReference pointing to an underlying buffer with unclear lifetime.
(WebKit::WebPage::getContentsAsString): Ditto.
(WebKit::WebPage::getSelectionAsWebArchiveData): Ditto.
(WebKit::WebPage::getMainResourceDataOfFrame): Ditto. Also use SharedBuffer directly.
(WebKit::WebPage::getResourceDataFromFrame): Ditto.
(WebKit::WebPage::getWebArchiveOfFrame): Ditto.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::containingLinkElement): Use elementLineage.
(WebKit::WebPage::performActionOnElement): Use references and SharedBuffer.
ALso did a bit of other cleanup in here.
(WebKit::isAssistableElement): Take Element& instead of Node*, since that's what
the caller has.
(WebKit::nextAssistableElement): Changed name to match what the function does.
Added an obviously-missing check on the startNode argument. Updated for change
to isAssistableElement above. Take a Page& instead of a Page*.
(WebKit::hasAssistableElement): Changed name to match what the function does.
Updated for change to nextAssistableElement above. Took out incorrect comparison
of a C++ pointer to the Objective-C object pointer nil. Take a Page& instead of a Page*.
(WebKit::WebPage::focusNextAssistedNode): Updated for above changes.
(WebKit::WebPage::getAssistedNodeInformation): Updated for above changes.
2014-11-04 Tim Horton <timothy_horton@apple.com>
Dictionary lookup panel pops up at random when clicking on selected text
https://bugs.webkit.org/show_bug.cgi?id=138353
<rdar://problem/18861406>
* WebProcess/WebPage/WebPage.h:
Fix the build; this needs to be public.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::rangeForDictionaryLookupAtHitTestResult):
Use the right selection (the one we just tested) in the change from r175517.
2014-11-04 Tim Horton <timothy_horton@apple.com>
Dictionary lookup panel pops up at random when clicking on selected text
https://bugs.webkit.org/show_bug.cgi?id=138353
<rdar://problem/18861406>
Reviewed by Andreas Kling.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::rangeForDictionaryLookupForSelection):
(WebKit::rangeForDictionaryLookupAtHitTestResult):
Factor rangeForDictionaryLookupForSelection out of performDictionaryLookupForSelection.
Make use of rangeForDictionaryLookupForSelection in rangeForDictionaryLookupAtHitTestResult,
returning the selection-based range if the hit test intersects the selected text.
Previously, we were just going forward with performDictionaryLookupForSelection,
which would actually *do* the lookup, even if we just wanted to retrieve the range.
Make rangeForDictionaryLookup* static.
(WebKit::WebPage::performDictionaryLookupForSelection):
Make use of rangeForDictionaryLookupForSelection.
2014-11-03 Chris Dumez <cdumez@apple.com>
Allow implicit conversion from Ref<T> to T&
https://bugs.webkit.org/show_bug.cgi?id=138331
Reviewed by Andreas Kling.
Remove unnecessary calls to Ref<T>::get() now that a Ref<T> can be
converted implicitly to a T&.
2014-11-03 Simon Fraser <simon.fraser@apple.com>
Expose visibleDebugOverlayRegions pref via the WK2 C SPI
https://bugs.webkit.org/show_bug.cgi?id=138342
Reviewed by Dan Bernstein.
Expose WKDebugOverlayRegions via the C SPI.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetVisibleDebugOverlayRegions):
(WKPreferencesGetVisibleDebugOverlayRegions):
* UIProcess/API/C/WKPreferencesRef.h:
2014-11-03 Beth Dakin <bdakin@apple.com>
Implement action menus for editable text with spelling suggestions
https://bugs.webkit.org/show_bug.cgi?id=138333
-and corresponding-
rdar://problem/18742371
Reviewed by Tim Horton.
New types.
* Shared/API/c/WKActionMenuItemTypes.h:
* Shared/API/c/WKActionMenuTypes.h:
ActionMenuHitTestResult now stores the String result of the lookup.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Make getGuessesForWord() public so we can call it from WKActionMenuController.
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WKActionMenuController.mm:
Select the text for all types of text menus.
(-[WKActionMenuController isMenuForTextContent]):
(-[WKActionMenuController willOpenMenu:withEvent:]):
Spelling suggestions are presented in a sub-menu and will replace the selection
when chosen.
(-[WKActionMenuController _defaultMenuItemsForEditableTextWithSuggestions:]):
(-[WKActionMenuController _changeSelectionToSuggestion:]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(-[WKActionMenuController _defaultMenuItems:]):
New function to store the lookupText as a String on the ActionMenuHitTestResult.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::lookupTextAtLocation):
2014-11-03 Simon Fraser <simon.fraser@apple.com>
Add page overlays that show regions with mouseWheel event handlers, and the non-fast-scrollable region, and code to toggle them in MiniBrowser WK2
https://bugs.webkit.org/show_bug.cgi?id=138257
Reviewed by Tim Horton.
Add private prefs to control visibility of debug-related page region overlays.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _visibleDebugOverlayRegions]):
(-[WKPreferences _setVisibleDebugOverlayRegions:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* UIProcess/mac/WebPreferencesMac.mm:
(WebKit::setDebugUInt32ValueIfInUserDefaults):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updatePreferences): Update the overlays.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences): Update the overlays.
2014-11-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r175406, r175413, and r175423.
https://bugs.webkit.org/show_bug.cgi?id=138327
Multipart tests are still broken (Requested by ap on #webkit).
Reverted changesets:
"Eliminate ResourceBuffer and use SharedBuffer directly
instead"
https://bugs.webkit.org/show_bug.cgi?id=138174
http://trac.webkit.org/changeset/175406
"Unreviewed, iOS build fix since 175406."
http://trac.webkit.org/changeset/175413
"Fix assertion in CachedResource::addDataBuffer"
http://trac.webkit.org/changeset/175423
2014-11-03 Tim Horton <timothy_horton@apple.com>
_actionMenuItemsForHitTestResult is given kWKActionMenuLink but an empty array of defaultMenuItems
https://bugs.webkit.org/show_bug.cgi?id=138321
<rdar://problem/18855134>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForLink]):
(-[WKActionMenuController _defaultMenuItems:]):
Move the HTTP-family-URLs-only condition to the place where we decide what kind of menu to
show. We depend on _defaultMenuItemsForLink returning the link menu, and should never
set the link menu type if we aren't going to build a link menu.
2014-11-03 Tim Horton <timothy_horton@apple.com>
Use FrameSnapshotting functions in FindController::getFindIndicatorBitmap
https://bugs.webkit.org/show_bug.cgi?id=138300
<rdar://problem/18855863>
Reviewed by Simon Fraser.
Share more code by using WebCore's FrameSnapshotting::snapshotSelection
in FindController instead of copying it into FindController wholesale.
* WebProcess/WebPage/FindController.cpp:
(WebKit::getFindIndicatorBitmap):
Make getFindIndicatorBitmap static, rename it from getFindIndicatorBitmapAndRect,
and drop the rect argument because only one caller wanted it, and we no longer need
to compute it (this happens in WebCore now).
Use snapshotSelection; all of the removed paint behaviors get added by
code in or underneath snapshotSelection now.
Draw the snapshot into our ShareableBitmap; we could avoid this in a future patch
by refactoring the FrameSnapshotting functions to take GraphicsContexts.
(WebKit::FindController::getImageForFindMatch):
(WebKit::FindController::updateFindIndicator):
Adopt the new getFindIndicatorBitmap.
* WebProcess/WebPage/FindController.h:
Remove getFindIndicatorBitmap(AndRect), which is now static.
2014-11-03 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r175476 to make GTK and EFL build happy.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::setFindIndicator): Deleted.
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::setTextIndicator):
(WebKit::WebView::setFindIndicator): Deleted.
* UIProcess/CoordinatedGraphics/WebView.h:
2014-11-03 Tim Horton <timothy_horton@apple.com>
Rename FindIndicator{Window} to TextIndicator{Window}
https://bugs.webkit.org/show_bug.cgi?id=138302
<rdar://problem/18855190>
Reviewed by Anders Carlsson.
Rename FindIndicator{Window} to TextIndicator{Window} (and related),
because it will soon be used to indicate ranges of text that are not
necessarily find-in-page results.
FindController still has things named 'findIndicator' internally,
and I left the API alone (because all the API bits are actually find-specific),
but the actual FindIndicator/Window and the message to set it up, etc. are all
now called Text*.
* CMakeLists.txt:
* UIProcess/API/mac/WKView.mm:
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/TextIndicator.cpp: Renamed from Source/WebKit2/UIProcess/FindIndicator.cpp.
* UIProcess/TextIndicator.h: Renamed from Source/WebKit2/UIProcess/FindIndicator.h.
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/ios/WKContentView.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
* UIProcess/mac/TextIndicatorWindow.h: Renamed from Source/WebKit2/UIProcess/mac/FindIndicatorWindow.h.
* UIProcess/mac/TextIndicatorWindow.mm: Renamed from Source/WebKit2/UIProcess/mac/FindIndicatorWindow.mm.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/FindController.cpp:
2014-11-03 Beth Dakin <bdakin@apple.com>
Implement action menus for editable text
https://bugs.webkit.org/show_bug.cgi?id=138284
-and corresponding-
rdar://problem/18742323
Reviewed by Tim Horton.
New item type for paste.
* Shared/API/c/WKActionMenuItemTypes.h:
New menu type for editable text.
* Shared/API/c/WKActionMenuTypes.h:
* UIProcess/mac/WKActionMenuController.mm:
willOpenMenu should select text for both regular text menus and editable text
menus.
(-[WKActionMenuController willOpenMenu:withEvent:]):
Default items for editable text.
(-[WKActionMenuController _defaultMenuItemsForEditableText]):
(-[WKActionMenuController _paste:]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
New method _hitTestResultForStage:(MenuUpdateStage)stage will figure out whether
we can use the WebHitTestResult from the ActionMenuHitTestResult or if we have to
use the potentially out-of-date WebHitTestResult that is cached on WebPageProxy.
An important difference between these results is that the ActionMenuHitTest
result, in addition to being more recent and accurate, also now includes shadow
content, which affects some editable regions on important sites such as
bugs.webkit.org and nytimes.com.
(-[WKActionMenuController _defaultMenuItems:]):
(-[WKActionMenuController _updateActionMenuItemsForStage:]):
(imageForResource:name::if): Deleted.
Allow shadow content in action menu hit testing.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::selectLookupTextAtLocation):
2014-11-03 Ada Chan <adachan@apple.com>
Persist the page's muted state across web process crashes.
https://bugs.webkit.org/show_bug.cgi?id=138195
Reviewed by Anders Carlsson.
Store the Page's muted state in WebPageCreationParameters so that state can be properly
restored after recovering from a crash in the web process.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
Initialize m_muted.
(WebKit::WebPageProxy::setMuted):
Update m_muted.
(WebKit::WebPageProxy::creationParameters):
Set the muted data member in WebPageCreationParameters.
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
Initialize the page's muted state with the muted value from WebPageCreationParameters.
2014-11-03 Ryuan Choi <ryuan.choi@gmail.com>
[EFL] Remove dependency of PageViewportController from PageViewportControllerClient
https://bugs.webkit.org/show_bug.cgi?id=138301
Reviewed by Gyuyoung Kim.
PaeViewportControllerClient does not need to keep the instance of PageViewPortController.
This patch removes it to simplify relation between them.
In addition, uses a reference for the client of PageViewportController.
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
(EwkView::setViewportPosition):
* UIProcess/API/efl/EwkView.h:
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::PageViewportController):
(WebKit::PageViewportController::didChangeContentsSize):
(WebKit::PageViewportController::didRenderFrame):
(WebKit::PageViewportController::pageDidRequestScroll):
(WebKit::PageViewportController::syncVisibleContents):
(WebKit::PageViewportController::didChangeViewportAttributes):
* UIProcess/CoordinatedGraphics/PageViewportController.h:
* UIProcess/PageViewportControllerClient.h:
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::PageViewportControllerClientEfl):
(WebKit::PageViewportControllerClientEfl::setViewportPosition):
(WebKit::PageViewportControllerClientEfl::setController): Deleted.
* UIProcess/efl/PageViewportControllerClientEfl.h:
2014-11-03 Sungmann Cho <sungmann.cho@navercorp.com>
AX: Fix some minor typos related to the word "accessibility".
https://bugs.webkit.org/show_bug.cgi?id=138299
Reviewed by Chris Fleizach.
No new tests, no behavior change.
* WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
2014-11-01 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r163656): Remote inspector doesn't work unless preferences change after page initialization
https://bugs.webkit.org/show_bug.cgi?id=138246
Reviewed by Joseph Pecoraro.
The problem is that initializeWebPage() is still using
pageGroup().preferences() instead of m_preferences to check if
developer extras are enabled to enable remote inspection of the page.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage): Use m_preferences
instead of pageGroup().preferences().
2014-11-01 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(CMake): Make it possible to build without introspection
https://bugs.webkit.org/show_bug.cgi?id=138006
Reviewed by Philippe Normand.
Do not install introspection files when introspection is disabled.
* PlatformGTK.cmake:
2014-10-31 Dan Bernstein <mitz@apple.com>
Removed a reference to a file that’s been deleted.
* WebKit2.xcodeproj/project.pbxproj: Removed reference to XPCPtr.h.
2014-10-31 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Use std::unique_ptr instead of OwnPtr in CoordinatorDrawingProxy
https://bugs.webkit.org/show_bug.cgi?id=138238
Reviewed by Ryosuke Niwa.
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
(WebKit::CoordinatedDrawingAreaProxy::CoordinatedDrawingAreaProxy): Use std::make_unique.
(WebKit::CoordinatedDrawingAreaProxy::enterAcceleratedCompositingMode):
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h: Use std::unique_ptr instead of OwnPtr.
2014-10-31 Sam Weinig <sam@webkit.org>
Add bundle SPI to customize the action menu
<rdar://problem/18830771>
https://bugs.webkit.org/show_bug.cgi?id=138271
Reviewed by Anders Carlsson.
- Adds a new function to the WKBundlePageContextMenuClient that allows the client to pass construct
user data in the bundle that can be available when customizing the menu in -[WKView _actionMenuItemsForHitTestResult...].
- Changes the signature of -[WKView _actionMenuItemsForHitTestResult...] to add userData.
- Makes the actual hit test result available in the second invocation of -[WKView _actionMenuItemsForHitTestResult...]
by serializing it in the ActionMenuHitTestResult.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Adds the WebHitTestResult and the original hit test request location.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Adds a new version of _actionMenuItemsForHitTestResult that passes userData along.
* UIProcess/API/mac/WKView.mm:
(-[WKView _didPerformActionMenuHitTest:userData:]):
(-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:userData:]):
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didPerformActionMenuHitTest):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformActionMenuHitTest):
Pipe the user data through to the WKView.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
(-[WKActionMenuController didPerformActionMenuHitTest:userData:]):
(-[WKActionMenuController menuNeedsUpdate:]):
(-[WKActionMenuController _updateActionMenuItemsForStage:]):
Differentiate between the two times _updateActionMenuItems was called via a new stage parameter,
(it is called once in prepareForMenu, and once in menuNeedsUpdate). Use the last mouse move hit
test result in the prepareForMenu case (as we don't have a real result yet), and the hit result
passed in via didPerformActionMenuHitTest in the menuNeedsUpdate case (assuming we didn't time out)
waiting on the web process.
* WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h:
* WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
(WebKit::InjectedBundlePageContextMenuClient::prepareForActionMenu):
* WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Adds new bundle SPI to collect user data to pass to the -[WKView _actionMenuItemsForHitTestResult...] method.
2014-10-31 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Use std::unique_ptr for TypeCountSet
https://bugs.webkit.org/show_bug.cgi?id=138242
Reviewed by Andreas Kling.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getWebCoreStatistics): Use std::unique_ptr<> instead of OwnPtr.
2014-10-30 Jer Noble <jer.noble@apple.com>
[WK2] Send origin & deletion requests to WebProcessess in additon to the DatabaseProcess.
https://bugs.webkit.org/show_bug.cgi?id=138212
Reviewed by Brady Eidson.
Now that the WebProcess has its own WebOriginDataManager, WebOriginDataManagerProxy needs to
send its origin and deletion messages to all the WebProcesses. This necessetates synchronizing
all the various process's callbacks so that the final callback is only triggered once all the
messaged processes reply.
Add a simple class, CallbackSynchronizer, which will keep track of outstanding process callbacks
and which will trigger the final callback once all of them finish.
* UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::CallbackSynchronizer::create):
(WebKit::CallbackSynchronizer::~CallbackSynchronizer):
(WebKit::CallbackSynchronizer::taskStarted):
(WebKit::CallbackSynchronizer::taskCompleted):
(WebKit::CallbackSynchronizer::CallbackSynchronizer):
(WebKit::createSynchronizedCallback):
(WebKit::sendMessageToAllProcessesInContext):
(WebKit::WebOriginDataManagerProxy::getOrigins):
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin):
(WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates):
(WebKit::WebOriginDataManagerProxy::deleteAllEntries):
Drive-by fix: check the correct enum value for WebMedia origin requests.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getOrigins):
(WebKit::WebProcess::deleteEntriesForOrigin):
(WebKit::WebProcess::deleteEntriesModifiedBetweenDates):
(WebKit::WebProcess::deleteAllEntries):
2014-10-31 Tim Horton <timothy_horton@apple.com>
REGRESSION (r175376): Occasional null deref when doing a dictionary lookup
https://bugs.webkit.org/show_bug.cgi?id=138261
<rdar://problem/18841709>
Reviewed by Anders Carlsson.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupAtLocation):
rangeForDictionaryLookupAtHitTestResult can easily return null.
2014-10-31 Beth Dakin <bdakin@apple.com>
Use system art for action menus when possible
https://bugs.webkit.org/show_bug.cgi?id=138260
Reviewed by Tim Horton.
* Resources/AddImageToPhotosTemplate.pdf: Removed.
* Resources/CopyImageTemplate.pdf: Removed.
* Resources/SaveImageToDownloadsTemplate.pdf: Removed.
* Resources/ShareImageTemplate.pdf: Removed.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]):
* WebKit2.xcodeproj/project.pbxproj:
2014-10-31 Timothy Horton <timothy_horton@apple.com>
Fix the build for Yosemite systems after r175417
* UIProcess/mac/WKActionMenuController.mm:
2014-10-31 Timothy Horton <timothy_horton@apple.com>
Fix the build for pre-Yosemite systems after r175417
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]):
(-[WKView initWithFrame:context:configuration:webView:]):
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformActionMenuHitTest):
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
2014-10-31 Timothy Horton <timothy_horton@apple.com>
Remove "Add to iPhoto" from the action menu's sharing menu
https://bugs.webkit.org/show_bug.cgi?id=138251
<rdar://problem/18837197>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
Retain/autorelease the new array.
2014-10-31 Tim Horton <timothy_horton@apple.com>
Remove "Add to iPhoto" from the action menu's sharing menu
https://bugs.webkit.org/show_bug.cgi?id=138251
<rdar://problem/18837197>
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
Filter out "Add to iPhoto".
2014-10-31 Adrian Perez de Castro <aperez@igalia.com>
[GTK] Support script message handlers WebKitUserContentManager
https://bugs.webkit.org/show_bug.cgi?id=133730
Reviewed by Carlos Garcia Campos.
Support user script message handlers in WebKitUserContentManager.
This needs building with ENABLE_USER_MESSAGE_HANDLERS, for which
an option is added to the CMake build files. The option is disabled
globally by default, and the WebKitGTK port enables it. On the API
level, two new methods to register and unregister names are provided
in the "window.webkit" namespace, and on message reception the
"WebKitUserContentManager::script-message-received" signal is
emitted, using the registered names as signal detail.
* UIProcess/API/gtk/WebKitJavascriptResult.cpp: Add a new private
function to construct a WebKitJavascriptResult directly from a
WebCore::SerializedScriptValue.
(_WebKitJavascriptResult::_WebKitJavascriptResult): Ditto.
(webkitJavascriptResultCreate): Ditto.
* UIProcess/API/gtk/WebKitJavascriptResultPrivate.h: Ditto.
* UIProcess/API/gtk/WebKitUserContentManager.cpp:
(webkit_user_content_manager_class_init): Install the
"script-message-received" signal.
(webkit_user_content_manager_register_script_message_handler):
Added.
(webkit_user_content_manager_unregister_script_message_handler):
Added.
* UIProcess/API/gtk/WebKitUserContentManager.h: Added the new
public API methods.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
* UIProcess/API/gtk/docs/webkit2gtk.types: Add
webkit_user_content_manager_get_type() to the list in order to make
gtk-doc to generate documentation for signals.
2014-10-31 Martin Hock <mhock@apple.com>
Unreviewed, iOS build fix since 175406.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):
2014-10-30 Darin Adler <darin@apple.com>
Eliminate ResourceBuffer and use SharedBuffer directly instead
https://bugs.webkit.org/show_bug.cgi?id=138174
Reviewed by Antti Koivisto.
* CMakeLists.txt: Removed WebResourceBuffer.cpp.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::sendBuffer): Use a reference instead of pointer.
* NetworkProcess/NetworkResourceLoader.h: Ditto.
* NetworkProcess/mac/NetworkDiskCacheMonitor.h: Ditto.
* NetworkProcess/mac/NetworkDiskCacheMonitor.mm:
(WebKit::NetworkDiskCacheMonitor::resourceBecameFileBacked): Ditto.
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer): Ditto.
* Shared/WebResourceBuffer.cpp: Removed.
* Shared/WebResourceBuffer.h: Removed.
* WebKit2.xcodeproj/project.pbxproj: Removed WebResourceBuffer.cpp/h.
* WebProcess/Network/NetworkProcessConnection.cpp: Removed unneeded includes.
(WebKit::NetworkProcessConnection::didCacheResource): Use a reference instead
of a pointer.
* WebProcess/Network/WebResourceLoadScheduler.cpp: Removed unneeded include.
* WebProcess/Network/WebResourceLoader.cpp: Ditto.
* WebProcess/Network/WebResourceLoader.h: Ditto.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: Ditto.
(WebKit::WebFrameLoaderClient::finishedLoading): Use SharedBuffer directly.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::source): Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInMainFrame): Refactored to make the relationship
between the buffer and the DataReference clearer and to avoid having a long-lived
DataReference pointing to an underlying buffer with unclear lifetime.
(WebKit::WebPage::getContentsAsString): Ditto.
(WebKit::WebPage::getSelectionAsWebArchiveData): Ditto.
(WebKit::WebPage::getMainResourceDataOfFrame): Ditto. Also use SharedBuffer directly.
(WebKit::WebPage::getResourceDataFromFrame): Ditto.
(WebKit::WebPage::getWebArchiveOfFrame): Ditto.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::containingLinkElement): Use elementLineage.
(WebKit::WebPage::performActionOnElement): Use references and SharedBuffer.
ALso did a bit of other cleanup in here.
(WebKit::isAssistableElement): Take Element& instead of Node*, since that's what
the caller has.
(WebKit::nextAssistableElement): Changed name to match what the function does.
Added an obviously-missing check on the startNode argument. Updated for change
to isAssistableElement above. Take a Page& instead of a Page*.
(WebKit::hasAssistableElement): Changed name to match what the function does.
Updated for change to nextAssistableElement above. Took out incorrect comparison
of a C++ pointer to the Objective-C object pointer nil. Take a Page& instead of a Page*.
(WebKit::WebPage::focusNextAssistedNode): Updated for above changes.
(WebKit::WebPage::getAssistedNodeInformation): Updated for above changes.
2014-10-30 Jer Noble <jer.noble@apple.com>
[EME] Add Setting for accessing storage location for MediaKeys data
https://bugs.webkit.org/show_bug.cgi?id=138147
Reviewed by Brady Eidson.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Pass from WebMediaKeyStorageManager into Settings.
2014-10-30 Dana Burkart <dburkart@apple.com>
Workaround for <rdar://problem/18830639>
Unreviewed.
* Shared/API/Cocoa/WKFoundation.h:
2014-10-30 Dana Burkart <dburkart@apple.com>
<rdar://problem/18821260> Prepare for the mysterious future
Reviewed by Lucas Forschler.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebContentService.Development.xcconfig:
* Configurations/WebContentService.xcconfig:
* Configurations/WebKit.xcconfig:
2014-10-30 Anders Carlsson <andersca@apple.com>
Try to fix the iOS build.
* WebProcess/WebPage/WebPage.messages.in:
2014-10-30 Tim Horton <timothy_horton@apple.com>
Long spins under rangeExpandedAroundPosition on Yahoo Mail
https://bugs.webkit.org/show_bug.cgi?id=138223
<rdar://problem/18819547>
Reviewed by Enrica Casucci.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::rangeExpandedAroundPositionByCharacters):
Reimplement rangeExpandedAroundPosition to operate on characters instead of lines,
and to use Position. Moving VisiblePositions by line can be very expensive in some cases,
and for generating lookup/Data Detectors context, we don't care about that kind of precision.
This makes this function ~1000x faster when it hits on a row in the Yahoo Mail message list.
(WebKit::WebPage::performDictionaryLookupAtLocation):
(WebKit::scanForDataDetectedItems):
Adopt the new rangeExpandedAroundPositionByCharacters, expanding 250 characters
before and after, which roughly matches what we were usually getting going by line,
and is a reasonable amount of context for these operations.
2014-10-30 Brady Eidson <beidson@apple.com>
IndexedDB is deleting data when a PK is shared amongst two objectStores
rdar://problem/18479306 and https://bugs.webkit.org/show_bug.cgi?id=137154
Reviewed by Jer Noble.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::v1RecordsTableSchema): Store away the v1 schema for introspection into the database.
(WebKit::v2RecordsTableSchema): Add utility methods to get the v2 schema with different Table names.
(WebKit::createOrMigrateRecordsTableIfNecessary): Check to see if the Records table exists with
the correct schema. If it is the v1 schema, then migrate the data to a new v2 table, drop the v1
table, then slide the new table into place.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::ensureValidRecordsTable): Make sure the Records table
exists and is v2, and then make sure the uniqueness index exists.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata): Don’t bother creating
the Records table here as it will have already been established earlier.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata):
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
2014-10-30 Beth Dakin <bdakin@apple.com>
Implement action menus for text
https://bugs.webkit.org/show_bug.cgi?id=138220
-and corresponding-
rdar://problem/18742297
Reviewed by Tim Horton.
Two new types of actions for the two text actions.
* Shared/API/c/WKActionMenuItemTypes.h:
One new type of menu.
* Shared/API/c/WKActionMenuTypes.h:
Pass willOpenMenu on to the WKActionMenuController.
* UIProcess/API/mac/WKView.mm:
(-[WKView willOpenMenu:withEvent:]):
Two new WebPageProxy functions that will pass messages along to the web process.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::selectLookupTextAtLocation):
* UIProcess/WebPageProxy.h:
At willOpenMenu time, text menus should select text so that it is clear what the
menu actions will apply to.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
Menu items for text menus.
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController _defaultMenuItemsForText]):
(-[WKActionMenuController _copyText:]):
(-[WKActionMenuController _lookupText:]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(imageForResource:name::if):
New messages to the web process.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Re-factor performDictionaryLookupAtLocation() to re-use the code that finds the
Range for the dictionary lookup. That code now lives in
rangeForDictionaryLookupAtHitTestResult() and can be used by
performDictionaryLookupAtLocation() and our new function
selectLookupTextAtLocation().
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::rangeForDictionaryLookupAtHitTestResult):
(WebKit::WebPage::performDictionaryLookupAtLocation):
Since the action menu text is always selected, when the lookup action is chosen,
we can just lookup the current selection.
(WebKit::WebPage::performDictionaryLookupOfCurrentSelection):
Uses the new function rangeForDictionaryLookupAtHitTestResult() to get a lookup
range and then select it.
(WebKit::WebPage::selectLookupTextAtLocation):
2014-10-30 Dan Bernstein <mitz@apple.com>
When a client certificate is rejected, Safari says the website didn’t accept the certificate “unknown” instead of naming the certificate
https://bugs.webkit.org/show_bug.cgi?id=138216
Reviewed by Alexey Proskuryakov.
* Shared/cf/ArgumentCodersCF.cpp:
(IPC::typeFromCFTypeRef): Remove no-longer-necessary platform guards around SecIdentityRef.
(IPC::encode): Ditto.
(IPC::decode): Ditto.
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<ResourceError>::encodePlatformData): If NSErrorClientCertificateChainKey
is present in the error’s userInfo dictionary, assert that it’s an array of identities and
certificates, and include it in the filtered dictionary.
2014-10-29 Hunseop Jeong <hs85.jeong@samsung.com>
[CoordinatedGraphics] Use modern for-loops
https://bugs.webkit.org/show_bug.cgi?id=138168
Reviewed by Andreas Kling.
No new tests as there is no change in functionality.
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp: Use a modern for loop.
(WebCore::CoordinatedBackingStore::texture):
(WebCore::CoordinatedBackingStore::paintTilesToTextureMapper):
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp: Use a modern for loop.
(WebKit::CoordinatedDrawingAreaProxy::incorporateUpdate):
* UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: Use a modern for loop.
(WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
(WebCore::CoordinatedGraphicsScene::createLayers): changed the name of argument to be equal with deleteLayer().
(WebCore::CoordinatedGraphicsScene::deleteLayers):
(WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebCore::CoordinatedGraphicsScene::syncUpdateAtlases):
(WebCore::CoordinatedGraphicsScene::syncImageBackings):
(WebCore::CoordinatedGraphicsScene::commitSceneState):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp: Use a modern for loop.
(WebKit::shouldPaintBoundsRect):
(WebKit::CoordinatedDrawingArea::display):
2014-10-29 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed, EFL build fix since r175349.
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::didRemoveItem): Use PLATFORM(COCOA) for setSnapshot().
2014-10-29 Tim Horton <timothy_horton@apple.com>
Null deref under performActionMenuHitTestAtLocation
https://bugs.webkit.org/show_bug.cgi?id=138197
<rdar://problem/18817803>
Reviewed by Beth Dakin.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::scanForDataDetectedItems):
Null-check the expanded range.
2014-10-28 Ada Chan <adachan@apple.com>
Implement WKPageSetMuted(bool).
https://bugs.webkit.org/show_bug.cgi?id=138158
Reviewed by Anders Carlsson.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetMuted):
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setMuted):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setMuted):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2014-10-29 Anders Carlsson <andersca@apple.com>
Clear ViewSnapshots when back/forward list items are removed from their list
https://bugs.webkit.org/show_bug.cgi?id=138188
<rdar://problem/18817001>
Reviewed by Tim Horton.
Ideally we should remove the WebBackForwardListItem objects as well, but this is a somewhat safer fix.
Change all the "remove item" codepaths to call WebBackForwardList::didRemoveItem and have it clear out the snapshot.
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::pageClosed):
(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::removeAllItems):
(WebKit::WebBackForwardList::clear):
(WebKit::WebBackForwardList::didRemoveItem):
* UIProcess/WebBackForwardList.h:
2014-10-29 Tim Horton <timothy_horton@apple.com>
Hide the 'Add to Photos' item if it isn't available
https://bugs.webkit.org/show_bug.cgi?id=138182
<rdar://problem/18814999>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _canAddImageToPhotos]):
(-[WKActionMenuController _addImageToPhotos:]):
Factor _canAddImageToPhotos out of _addImageToPhotos:, and use it in
_defaultMenuItemsForImage to avoid including the menu item in the first place.
2014-10-29 Tim Horton <timothy_horton@apple.com>
Rename WebPageProxy::activeActionMenuHitTestResult to lastMouseMoveHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=138137
<rdar://problem/18798257>
Reviewed by Anders Carlsson.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::mouseDidMoveOverElement):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::lastMouseMoveHitTestResult):
(WebKit::WebPageProxy::activeActionMenuHitTestResult): Deleted.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForLink]):
(-[WKActionMenuController _openURLFromActionMenu:]):
(-[WKActionMenuController _addToReadingListFromActionMenu:]):
(-[WKActionMenuController _quickLookURLFromActionMenu:]):
(-[WKActionMenuController _saveImageToDownloads:]):
(imageForResource:name::if):
(-[WKActionMenuController _updateActionMenuItems]):
Rename to the more accurate and general name.
2014-10-29 Tim Horton <timothy_horton@apple.com>
Implement action menus for data detected items
https://bugs.webkit.org/show_bug.cgi?id=138178
<rdar://problem/18709436>
Reviewed by Anders Carlsson.
* Shared/API/c/WKActionMenuTypes.h:
Add a new type.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
* Shared/WebHitTestResult.h:
(WebKit::WebHitTestResult::isTextNode):
Determine, store, encode, and decode whether or not the hit node is a text node.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm: Renamed from Source/WebKit2/Shared/mac/ActionMenuHitTestResult.cpp.
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Make ActionMenuHitTestResult an Obj-C++ file.
Store, encode, and decode (securely!) a DDActionContext and FloatRect
representing the bounding box of the data detected item, if any.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
(-[WKView willOpenMenu:withEvent:]): Deleted.
Stop using willOpenMenu; we'll use NSMenuDelegate's menuNeedsUpdate: instead.
Hook up WKActionMenuController as our action menu's delegate.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
Call _updateActionMenuItems *after* we've adjusted _state, so that it
can depend on the value being correct.
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController didPerformActionMenuHitTest:]):
Move menu updating to menuNeedsUpdate for more accurate timing.
(_updateActionMenuItems):
When building the menu, if we have a text node that is not a link,
and hit a data detected item, retrieve the menu from the DDActionContext.
If we have nothing, make sure to reset _type, and if the final hit-test
is still pending, build a menu with a dummy item.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performActionMenuHitTestAtLocation): Moved to WebPageMac.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::rangeExpandedAroundPosition):
Factor this out of performDictionaryLookupAtLocation.
(WebKit::WebPage::performDictionaryLookupAtLocation):
Make use of rangeExpandedAroundPosition.
(WebKit::scanForDataDetectedItems):
Expand to four lines of context around the hit point.
Convert that range to plain text, and feed it to DataDetectors.
Find the result that intersects the hit point, and make a DDActionContext
for it. Also, store the bounding box of the first quad of the detected
text, to provide to Data Detectors as a hint for UI placement.
(WebKit::WebPage::performActionMenuHitTestAtLocation):
If the hit node is a text node, call scanForDataDetectedItems and
store the resultant DDActionContext and bounding rect on our
ActionMenuHitTestResult for transfer to the UI process.
2014-10-29 Joseph Pecoraro <pecoraro@apple.com>
[iOS] iPad: Occasional <select> crashes attempting to scroll to non-existing row 0 in viewWillAppear
https://bugs.webkit.org/show_bug.cgi?id=138165
Reviewed by David Kilzer.
This is a speculative fix for a crash attempting to scroll to a row in a
select picker on iPad. In these cases we are trying to scroll to the first
row of the first section, but no such row appears to exist. I was unable
to reproduce the issue, but if it is happening we should be able to protect
safely protect against crashing.
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController viewWillAppear:]):
Protect against trying to scroll to a section/row that does not exist
by pre-checking that the section/row is valid.
2014-10-28 Ting-Wei Lan <lantw44@gmail.com>
Cast std::chrono::duration.count() to int64_t in ArgumentCoder
https://bugs.webkit.org/show_bug.cgi?id=136981
Reviewed by Alexey Proskuryakov.
Explicitly cast the return value of std::chrono::duration.count() to
a fixed-size interger type, which prevents compilation error when
the return value type matches neither int32_t nor int64_t.
* Platform/IPC/ArgumentCoders.h:
2014-10-28 Jer Noble <jer.noble@apple.com>
[EME] Pass location for media key storage through from WebKit/WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=137120
Reviewed by Anders Carlsson.
Allow the location for media key storage to be passed into the WebProcess from the UIProcess
through the WebContextConfiguraiton struct.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Add mediaKeysStorageDirectory.
(WebKit::WebProcessCreationParameters::decode): Ditto.
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCopyMediaKeysStorageDirectory): Added getter.
(WKContextConfigurationSetMediaKeysStorageDirectory): Added setter.
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/C/WKOriginDataManager.h:
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _initWithConfiguration:]): Provide a default location.
* UIProcess/APIContextConfiguration.cpp:
(API::ContextConfiguration::webContextConfiguration): Set mediaKeysStorageDirectory.
* UIProcess/APIContextConfiguration.h:
(API::ContextConfiguration::mediaKeysStorageDirectory): Added getter.
(API::ContextConfiguration::setMediaKeysStorageDirectory): Added setter.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::applyPlatformSpecificConfigurationDefaults): Apply mediaKeysStorageDirectory.
(WebKit::WebContext::WebContext): Initialize m_mediaKeysStorageDirectory.
(WebKit::WebContext::createNewWebProcess): Create a sandbox extension handle for mediaKeysStorageDirectory.
* UIProcess/WebContext.h:
* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::platformDefaultMediaKeysStorageDirectory): Return a default location.
* UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::platformDefaultMediaKeysStorageDirectory): Ditto.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformDefaultMediaKeysStorageDirectory): Return an overridable default location.
* WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: Added.
(WebKit::WebMediaKeyStorageManager::initialize): Pull the mediaKeysStorageDirectory out of configuration.
(WebKit::WebMediaKeyStorageManager::supplementName): Return a configuration name.
(WebKit::WebMediaKeyStorageManager::mediaKeyStorageDirectoryForOrigin): Return the
correct storage directory based on the SecureOrigin.
(WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins): Return the origins within the
storage directory.
(WebKit::removeAllMediaKeyStorageForOriginPath): Static, remove contents and directory at path.
(WebKit::WebMediaKeyStorageManager::deleteMediaKeyEntriesForOrigin): Use
removeAllMediaKeyStorageForOriginPath to remove origin data.
(WebKit::WebMediaKeyStorageManager::deleteMediaKeyEntriesModifiedBetweenDates): Ditto.
(WebKit::WebMediaKeyStorageManager::deleteAllMediaKeyEntries): Ditto.
* WebProcess/MediaCache/WebMediaKeyStorageManager.h: Added.
(WebKit::WebMediaKeyStorageManager::WebMediaKeyStorageManager): Default constructor.
(WebKit::WebMediaKeyStorageManager::~WebMediaKeyStorageManager): Default virtual destructor.
(WebKit::WebMediaKeyStorageManager::mediaKeyStorageDirectory): Simple accessor.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess): Add WebMediaKeyStorageManager as a supplement.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess): Create a sandbox extension from the sandbox extension handle.
Add new source files to project(s).
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
(WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins):
(WebKit::removeAllMediaKeyStorageForOriginPath):
Drive-by fix: references to VoidCallback are ambiguous, since the same name is re-used in multiple namespaces.
Make references to WebCore::VoidCallback explicit where the entire WebCore (and other) namespaces are pulled in.
* WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
(WebKit::NotificationPermissionRequestManager::startRequest):
(WebKit::NotificationPermissionRequestManager::didReceiveNotificationPermissionDecision):
* WebProcess/WebCoreSupport/WebNotificationClient.cpp:
(WebKit::WebNotificationClient::requestPermission):
2014-10-28 Jeremy Jones <jeremyj@apple.com>
Add optimized fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=138044
Reviewed by Anders Carlsson.
Enable different types of fullscreen video behavior.
Add an enum parameter to enterVideoFullscreenForVideoElement for alternate types of fullscreen.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h: Add fullscreenType parameter
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: ditto
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): ditto
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): ditto
* WebProcess/WebCoreSupport/WebChromeClient.h: ditto
* WebProcess/ios/WebVideoFullscreenManager.h: ditto
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): ditto
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): ditto
2014-10-28 Dan Bernstein <mitz@apple.com>
Added a Radar reference to a comment.
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<Credential>::encodePlatformData):
2014-10-28 Dan Bernstein <mitz@apple.com>
[Cocoa] REGERESSION (r171801): Client certificate authentication is failing
https://bugs.webkit.org/show_bug.cgi?id=138144
Reviewed by Alexey Proskuryakov.
NSURLCredential’s implementation of NSSecureCoding fails to encode identity-based
credentials properly. Work around that by encoding the identity, certificate, and
persistence individually.
* Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<Credential>::encodePlatformData):
(IPC::ArgumentCoder<Credential>::decodePlatformData):
2014-10-28 Joseph Pecoraro <pecoraro@apple.com>
[iOS] iPhone should not allow selecting <optgroup> in <select multiple>
https://bugs.webkit.org/show_bug.cgi?id=137991
Reviewed by Darin Adler.
We seem to be getting the delegate when we are not supposed to.
Workaround the issue as best we can by reseting the styles
for the group's content view and not changing selections.
* UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKMultipleSelectPicker pickerView:row:column:checked:]):
2014-10-28 Tim Horton <timothy_horton@apple.com>
Remove an inaccurate comment in WKActionMenuController
https://bugs.webkit.org/show_bug.cgi?id=138135
Reviewed by Anders Carlsson.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForLink]):
The comment is wrong; the separator is there for spacing, not just as a workaround.
2014-10-28 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.7.1 release.
* gtk/NEWS: Add release notes for 2.7.1.
2014-10-28 Dan Bernstein <mitz@apple.com>
[Mac] OS X Mavericks build broken with public SDK
https://bugs.webkit.org/show_bug.cgi?id=138108
Reviewed by Mark Rowe.
* Shared/API/Cocoa/WKFoundation.h: Only define the NSEventModifierFlags type when using a
version of the OS X SDK that doesn’t define it.
2014-10-27 Conrad Shultz <conrad_shultz@apple.com>
NSSharingService protocol conformance should be internal to WKActionMenuController
https://bugs.webkit.org/show_bug.cgi?id=138112
Reviewed by Tim Horton.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
Move protocol conformance from the interface to a class extension.
2014-10-27 Enrica Casucci <enrica@apple.com>
WebContent crash in WebKit::WebPage::expandedRangeFromHandle.
https://bugs.webkit.org/show_bug.cgi?id=138023
rdar://problem/18787412
Reviewed by Ryosuke Niwa.
We must change that we have a valid currentRange before trying
to expand or contract.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::changeBlockSelection):
2014-10-27 Alexey Proskuryakov <ap@apple.com>
http/tests/cookies/third-party-cookie-relaxing.html is flaky on bots
https://bugs.webkit.org/show_bug.cgi?id=138098
Reviewed by Anders Carlsson.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* WebProcess/com.apple.WebProcess.sb.in:
Update for the new name of testing session. Memory regions are now of the form
"WebKit Test-<pid>-0".
2014-10-27 Chris Dumez <cdumez@apple.com>
Use separate HashMaps for common and uncommon headers in HTTPHeaderMap
https://bugs.webkit.org/show_bug.cgi?id=138079
Reviewed by Anders Carlsson.
Update the WK2 IPC HTTPHeaderMap serialization / deserialization code
to leverage the fact that HTTPHeaderMap now stores common HTTP headers
and uncommon one in separate HashMaps. This speeds up deserialization
as we no longer need to call findHTTPHeaderName() for every decoded
header. We already know if the header is a common one or not, and if
it is then we already have a HTTPHeaderName type instead of a String.
I see that we spend ~40% less time in HTTPHeaderMap decoding when
loading http://flickr.com/explore, while the encoding takes about
the same amount of time as before.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<HTTPHeaderMap>::encode):
(IPC::ArgumentCoder<HTTPHeaderMap>::decode):
2014-10-24 Benjamin Poulain <bpoulain@apple.com>
Fix the iOS build
* Configurations/WebKit.xcconfig:
2014-10-24 Beth Dakin <bdakin@apple.com>
_actionMenuItemsForHitTestResult should also take a type indicating what the menu
was built for
https://bugs.webkit.org/show_bug.cgi?id=138063
Reviewed by Dan Bernstein.
New type enum that can be used by clients.
* Shared/API/c/WKActionMenuTypes.h: Added.
Remove the old SPI and add the new.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:]):
(-[WKView _actionMenuItemsForHitTestResult:defaultActionMenuItems:]): Deleted.
Now keep an ivar for the type.
* UIProcess/mac/WKActionMenuController.h:
Create a category for the old SPI so that we can still call it if clients have
implemented it.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController initWithPage:view:]):
(-[WKActionMenuController didCloseMenu:withEvent:]):
(imageForResource:name::if):
(-[WKActionMenuController _updateActionMenuItems]):
* WebKit2.xcodeproj/project.pbxproj:
2014-10-24 Tim Horton <timothy_horton@apple.com>
Share sheet doesn't attach to the window
https://bugs.webkit.org/show_bug.cgi?id=138062
<rdar://problem/18767397>
Reviewed by Beth Dakin.
* UIProcess/mac/WKActionMenuController.h:
WKActionMenuController is now a NSSharingService{Picker}Delegate.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForImage]):
Set us up as the NSSharingServicePicker delegate.
(-[WKActionMenuController sharingServicePicker:delegateForSharingService:]):
Set us up as the NSSharingService delegate.
(-[WKActionMenuController sharingService:sourceWindowForShareItems:sharingContentScope:]):
Return the appropriate window to attach to.
2014-10-24 Jer Noble <jer.noble@apple.com>
Abstractify WebOriginDataManager to support arbitrary ChildProcess supplements.
https://bugs.webkit.org/show_bug.cgi?id=137993
Reviewed by Brady Eidson.
To allow different ChildProcess subclasses to handle listing and deletion of origin
data, make WebOriginDataManager more generic by having a supplement implement the
details, leaving WebOriginDataManager to deal with cross-process messaging.
De-virtualize AsyncTask, allowing a task to be created by passing in a
function<void()>, rather than an object, method, and arguments.
* Shared/AsyncTask.h:
(WebKit::AsyncTask::AsyncTask):
(WebKit::AsyncTask::performTask):
(WebKit::AsyncTask::~AsyncTask): Deleted.
Add a new virtual base class, to be implemented by various ChildProcesses, which
WebOriginDataManager will use to implement listing and deletion requests.
* WebProcess/OriginData/WebOriginDataManager.h:
* WebProcess/OriginData/WebOriginDataManagerSupplement.h: Added.
(WebKit::WebOriginDataManagerSupplement::WebOriginDataManagerSupplement):
(WebKit::WebOriginDataManagerSupplement::~WebOriginDataManagerSupplement):
(WebKit::WebOriginDataManagerSupplement::getOrigins):
(WebKit::WebOriginDataManagerSupplement::deleteEntriesForOrigin):
(WebKit::WebOriginDataManagerSupplement::deleteEntriesModifiedBetweenDates):
(WebKit::WebOriginDataManagerSupplement::deleteAllEntries):
* WebKit2.xcodeproj/project.pbxproj:
WebOriginDataManager doesn't need to be a ChildSupplement. Remove the DatabaseProcess-
specific implementations for its message handlers and replace with clean, generic calls
to its supplement. Because these supplements may want to respond to the request
asynchronously, pass a completion function in to be called by the supplement once its
work is complete.
* WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::WebOriginDataManager):
(WebKit::WebOriginDataManager::getOrigins):
(WebKit::WebOriginDataManager::deleteEntriesForOrigin):
(WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates):
(WebKit::WebOriginDataManager::deleteAllEntries):
(WebKit::WebOriginDataManager::supplementName): Deleted.
DatabaseProcess already uses WebOriginDataManager, so it will be the first process
to fall under the heel of the new regime. DatabaseProcess will subclass
WebOriginDataManagerSupplement, and pass itself in twice to the WebOriginDataManager
constructor. Create a lambda-based AsyncTask for each request, and call the completion
function when each request is complete.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::DatabaseProcess):
(WebKit::DatabaseProcess::getIndexedDatabaseOrigins):
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin):
(WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedBetweenDates):
(WebKit::DatabaseProcess::deleteAllIndexedDatabaseEntries):
(WebKit::DatabaseProcess::getOrigins):
(WebKit::DatabaseProcess::deleteEntriesForOrigin):
(WebKit::DatabaseProcess::deleteEntriesModifiedBetweenDates):
(WebKit::DatabaseProcess::deleteAllEntries):
(WebKit::DatabaseProcess::doGetIndexedDatabaseOrigins): Deleted.
(WebKit::DatabaseProcess::doDeleteIndexedDatabaseEntriesForOrigin): Deleted.
(WebKit::DatabaseProcess::doDeleteIndexedDatabaseEntriesModifiedBetweenDates): Deleted.
(WebKit::DatabaseProcess::doDeleteAllIndexedDatabaseEntries): Deleted.
* DatabaseProcess/DatabaseProcess.h:
2014-10-24 Beth Dakin <bdakin@apple.com>
Very large images crash in action menu code
https://bugs.webkit.org/show_bug.cgi?id=138059
-and corresponding-
rdar://problem/18767859
Reviewed by Tim Horton.
If the HitTestResult failed to create and image, then don’t go for the image
action menu.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItems]):
ShareableBitmap::createShareable() can fail. The result needs to be null-checked.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
2014-10-24 Beth Dakin <bdakin@apple.com>
Build fix.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
2014-10-24 Tim Horton <timothy_horton@apple.com>
Blindly try to fix all the builds.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
2014-10-24 Timothy Horton <timothy_horton@apple.com>
Blindly try to fix all the builds.
* UIProcess/mac/WKActionMenuController.h:
2014-10-24 Timothy Horton <timothy_horton@apple.com>
Blindly try to fix the 32-bit build.
* UIProcess/mac/WKActionMenuController.h:
* UIProcess/mac/WKActionMenuController.mm:
2014-10-24 Tim Horton <timothy_horton@apple.com>
[Mac][WebKit2] Move action menu code into its own file
https://bugs.webkit.org/show_bug.cgi?id=138034
<rdar://problem/18758758>
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
(-[WKActionMenuController _addImageToPhotos:]):
Review comments that were not previously addressed.
2014-10-24 Tim Horton <timothy_horton@apple.com>
[Mac][WebKit2] Move action menu code into its own file
https://bugs.webkit.org/show_bug.cgi?id=138034
<rdar://problem/18758758>
Reviewed by Dan Bernstein.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
Make a WKActionMenuController if needed.
(-[WKView prepareForMenu:withEvent:]):
(-[WKView willOpenMenu:withEvent:]):
(-[WKView didCloseMenu:withEvent:]):
(-[WKView _didPerformActionMenuHitTest:]):
Forward these to WKActionMenuController.
(-[WKView _openURLFromActionMenu:]): Deleted.
(-[WKView _addToReadingListFromActionMenu:]): Deleted.
(-[WKView _quickLookURLFromActionMenu:]): Deleted.
(-[WKView _createActionMenuItemForTag:]): Deleted.
(webKitBundleImageNamed): Deleted.
(-[WKView _copyImage:]): Deleted.
(-[WKView _saveImageToDownloads:]): Deleted.
(temporaryPhotosDirectoryPath): Deleted.
(pathToPhotoOnDisk): Deleted.
(-[WKView _addImageToPhotos:]): Deleted.
(-[WKView _defaultMenuItemsForImage]): Deleted.
(-[WKView _defaultMenuItems]): Deleted.
(-[WKView _updateActionMenu]): Deleted.
Moved to WKActionMenuController.
* UIProcess/mac/WKActionMenuController.h: Added.
* UIProcess/mac/WKActionMenuController.mm: Added.
(-[WKActionMenuController initWithPage:view:]):
(-[WKActionMenuController prepareForMenu:withEvent:]):
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController didCloseMenu:withEvent:]):
(-[WKActionMenuController didPerformActionMenuHitTest:]):
(-[WKActionMenuController _defaultMenuItemsForLink]):
(-[WKActionMenuController _openURLFromActionMenu:]):
(-[WKActionMenuController _addToReadingListFromActionMenu:]):
(-[WKActionMenuController _quickLookURLFromActionMenu:]):
(-[WKActionMenuController _defaultMenuItemsForImage]):
(-[WKActionMenuController _copyImage:]):
(-[WKActionMenuController _saveImageToDownloads:]):
(temporaryPhotosDirectoryPath):
(pathToPhotoOnDisk):
(-[WKActionMenuController _addImageToPhotos:]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(webKitBundleImageNamed):
(imageForResource:name::if):
(-[WKActionMenuController _updateActionMenuItems]):
Moved from WKView.
* WebKit2.xcodeproj/project.pbxproj:
2014-10-24 Marcos Chavarría Teijeiro <chavarria1991@gmail.com>
[GTK] Implement is_selected method on WebKitHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=137110
Reviewed by Tim Horton.
Expose CONTEXT_SELECTION for WebKitHitTestResult.
* Shared/WebHitTestResult.cpp: Add is_selected field and getter for this field.
(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):
* Shared/WebHitTestResult.h:
(WebKit::WebHitTestResult::isSelected):
* UIProcess/API/gtk/WebKitHitTestResult.cpp: Add WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION context and method to check it.
(webkitHitTestResultCreate):
(webkitHitTestResultCompare):
(webkit_hit_test_result_context_is_selection):
* UIProcess/API/gtk/WebKitHitTestResult.h:
* UIProcess/API/gtk/WebKitWebView.cpp: Modify context-menu callback to set the new context option.
(webkitWebViewPopulateContextMenu):
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add documentation about new function.
2014-10-23 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][Cairo] Remove GTK dependency of WidgetBackingStoreGtkX11
https://bugs.webkit.org/show_bug.cgi?id=138004
Reviewed by Gustavo Noronha Silva.
* UIProcess/BackingStore.h: Rename m_backingStore as m_backend,
since it's a bit confusing that a BackingStore class has a
m_backingStore member and WidgetBackingStore has been renamed as
BackingStoreBackendCairo.
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::createBackend): Helper function to create
the BackingStore backend depending on the platform.
(WebKit::BackingStore::paint): Use m_backend instead of m_backingStore.
(WebKit::BackingStore::incorporateUpdate): Ditto.
(WebKit::BackingStore::scroll): Ditto.
(WebKit::createBackingStoreForGTK): Deleted.
2014-10-23 Benjamin Poulain <bpoulain@apple.com>
Fix a bad find-and-replace in r175153
Looks like I messed up the commit on landing.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::didCommitLoadForFrame):
2014-10-23 Benjamin Poulain <bpoulain@apple.com>
[iOS WK2] If a page has the exact same VisibleContentRect as the page before, its VisibleContentRectUpdate can be ignored
https://bugs.webkit.org/show_bug.cgi?id=138031
rdar://problem/18739335
Reviewed by Simon Fraser.
Since any VisibleContentRectUpdate is costly for the WebProcess, we avoid sending updates
if none of the important parameters have changed (scale and geometry).
One unintended side effect is that the update of a page can be blocked if the parameters
of the previous page were identical.
What happen is this:
1) Page [A] sends its content rect update as needed. WebPageProxy saves the last update
in m_lastVisibleContentRectUpdate and use that value to avoid useless updates.
2) Page [B] load after page [A] and have the exact VisibleContentRect. When receiving the first
layer tree commit after didCommitLoadForFrame, WKWebView sends its VisibleContentRect
to WebPageProxy to synchronize the state of the WebProcess with what is on screen.
3) Since the two VisibleContentRect update has the same value as the ones of page [A], WebPageProxy
discards the update. The WebProcess has its initialization viewport and is not udpated until
a major parameter changes (scale or position).
In rdar://problem/18739335, the problem is the similar but with a different failure point:
1) Everything above happened already.
2) The layer tree transaction has a scrolling request. This is processed by WKWebView.
3) Since the scrolling position is invalid, the request is ignored and we send the last
VisibleContentRect to the WebProcess with WebPageProxy::resendLastVisibleContentRects().
4) Since the VisibleContentRect was never updated after didCommitLoadForFrame, the one we send
is for the previous page, which the web process correctly ignores.
This patch solves the problem by nuking the cached m_lastVisibleContentRectUpdate before
any valid VisibleContentRectUpdate for a new page.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::didCommitLoadForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Provide a way to have alternate inspector agents
https://bugs.webkit.org/show_bug.cgi?id=137901
Reviewed by Brian Burg.
* Configurations/FeatureDefines.xcconfig:
2014-10-23 Tim Horton <timothy_horton@apple.com>
Add some SPI headers for NSExtension and NSSharingService{Picker}
https://bugs.webkit.org/show_bug.cgi?id=138027
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
* UIProcess/mac/ServicesController.mm:
* UIProcess/mac/WebContextMenuProxyMac.mm:
Replace redefinitions with SPI header #imports.
2014-10-23 Benjamin Poulain <bpoulain@apple.com>
[iOS WK2] Make sure any dynamic viewport update schedules a layer tree commit
https://bugs.webkit.org/show_bug.cgi?id=138021
Reviewed by Simon Fraser.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):
Sometimes, the clients can do a dynamic viewport update but only change the minimum
layout size (see rdar://problem/18755250).
When that happens, it is possible to do the full state update without ever scheduling
a layer tree commit. For example, if the new minimum layout height is only a few pixels
smaller than the old value and the layout of the page is equal or larger than the old value,
the layout is done without any side effect to the content (assuming a viewport configuration
based on width).
The contract with the client is that the next layer tree commit after a dynamic viewport update
carries all the valid parameters for the new viewport size. Since the new layout never scheduled
a layer tree commit, the UIProcess is just waiting for one, discarding all input.
This patch solves the issue by explicitely scheduling a layer flush after updating all the layout
and view parameters to their final values. In most cases, this makes no difference since a layer
tree commit was already scheduled. In the rare cases where nothing was scheduled, scheduling
the layer tree commit ensure we unlock the UIProcess.
2014-10-23 Ryosuke Niwa <rniwa@webkit.org>
WebContent crash in WebKit::WebPage::expandedRangeFromHandle
https://bugs.webkit.org/show_bug.cgi?id=138023
Reviewed by Enrica Casucci.
The crashes are caused by rangeForBlockAtPoint returning a null Range.
Exit early or continue if a range is null in various places.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::expandedRangeFromHandle): Continue looking for another point if the range returned by
rangeForBlockAtPoint is null.
(WebKit::WebPage::contractedRangeFromHandle): Ditto.
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle): Removed the FIXME now that Enrica has
verified that this early exit added in r173788 is correct.
2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
[iOS] iPhone unselecting items in <select multiple> shows incorrect values selected
https://bugs.webkit.org/show_bug.cgi?id=137989
Reviewed by Alexey Proskuryakov.
* UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKMultipleSelectPicker pickerView:row:column:checked:]):
The second argument is "allowsMultipleSelection" and should only be set
when we are making a selection in a <select multiple>.
2014-10-23 Tim Horton <timothy_horton@apple.com>
Assertion failures in ImageKit soft linking
https://bugs.webkit.org/show_bug.cgi?id=138009
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
Soft-link ImageKit correctly.
ImageKit is inside the Quartz umbrella framework.
2014-10-23 Daniel Bates <dabates@apple.com>
[iOS] Fix the build after <http://trac.webkit.org/changeset/175079>
(https://bugs.webkit.org/show_bug.cgi?id=137995)
Rubber-stamped by Anders Carlsson.
Remove PageClientImpl::didPerformActionMenuHitTest() for iOS.
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didPerformActionMenuHitTest): Deleted.
2014-10-23 Krzysztof Czech <k.czech@samsung.com>
[EFL] Fix build problem after r175098
https://bugs.webkit.org/show_bug.cgi?id=138002
Reviewed by Gyuyoung Kim.
Add ECORE_X dependency to avoid linking problems while building unit tests.
* PlatformEfl.cmake:
2014-10-23 Krzysztof Czech <k.czech@samsung.com>
[EFL] Set proper default value for WebPageAccessibilityObject
https://bugs.webkit.org/show_bug.cgi?id=137951
Reviewed by Csaba Osztrogonác.
Initial value for WebPageAccessibilityObject should be nullptr.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
2014-10-23 Krzysztof Czech <k.czech@samsung.com>
[EFL] Introduce EFL Accessibility in WebKit
https://bugs.webkit.org/show_bug.cgi?id=137819
Reviewed by Gyuyoung Kim.
EFL Accessibility provides an API that is used to notify clients that certain
Accessibility events occur. Utilizing it makes WebKit-EFL coherent with EFL native
accessibility approach.
* PlatformEfl.cmake:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/efl/EwkView.h:
(EwkView::webAccessibility):
* UIProcess/API/efl/WebAccessibility.cpp: Added.
(WebKit::WebAccessibility::WebAccessibility):
(WebKit::WebAccessibility::~WebAccessibility):
(WebKit::WebAccessibility::eventHandler):
(WebKit::WebAccessibility::executeGestureAction):
(WebKit::WebAccessibility::activate):
(WebKit::WebAccessibility::read):
(WebKit::WebAccessibility::readNext):
(WebKit::WebAccessibility::readPrev):
(WebKit::WebAccessibility::up):
(WebKit::WebAccessibility::down):
(WebKit::WebAccessibility::scroll):
(WebKit::WebAccessibility::mouse):
(WebKit::WebAccessibility::enable):
(WebKit::WebAccessibility::disable):
* UIProcess/API/efl/WebAccessibility.h: Added.
(WebKit::WebAccessibility::activateAction):
(WebKit::WebAccessibility::nextAction):
(WebKit::WebAccessibility::prevAction):
(WebKit::WebAccessibility::readAction):
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_accessibility_action_activate_get):
(ewk_view_accessibility_action_next_get):
(ewk_view_accessibility_action_prev_get):
(ewk_view_accessibility_action_read_by_point_get):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_accessibility.cpp: Added.
(EWK2Accessibility::xwindow):
(TEST_F):
* UIProcess/WebPageProxy.h:
* UIProcess/efl/WebPageProxyEfl.cpp:
(WebKit::WebPageProxy::accessibilityObjectReadByPoint):
(WebKit::WebPageProxy::accessibilityObjectReadPrevious):
(WebKit::WebPageProxy::accessibilityObjectReadNext):
2014-10-22 Benjamin Poulain <bpoulain@apple.com>
[iOS WK2] Protect WKWebView dynamic viewport change against empty sizes
https://bugs.webkit.org/show_bug.cgi?id=137988
rdar://problem/17785162
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
The algorithm behind dynamic size update finds the best content area to put in the viewport
after a viewport change. If an initial size or a target size is empty, it is impossible to
compute a reasonable area to keep in the view. We end up handling NaN scales
and/or sizes and CoreAnimation raises an exception when applying that value.
This patch add early exits when that occurs and fallback to the common code.
On Input, things are easy. If any of the initial values is empty, we just execute the updateBlock
without attempting any of the dynamic behaviors.
For the target values, things are trickier. We do not know what the values are going to be before we execute
the block. But once we executed the block, we have already skipped all the setters that call the web process.
To handle that, every value is set manually on WebPageProxy. This is a bit unfortunate because the setters
get yet another entry point.
2014-10-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
EFL and GTK ports have broken since r175075
https://bugs.webkit.org/show_bug.cgi?id=137995
Unreviewed, EFL and GTK ports build fix.
Need to use PLATFORM(MAC) guard for ActionMenuHitTest functions.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::removeNavigationGestureSnapshot):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2014-10-22 Tim Horton <timothy_horton@apple.com>
Add action menu support for images
https://bugs.webkit.org/show_bug.cgi?id=137987
<rdar://problem/18717767>
Reviewed by Anders Carlsson, Sam Weinig, and Beth Dakin.
* Resources/AddImageToPhotos.pdf: Added.
* Resources/CopyImage.pdf: Added.
* Resources/SaveImageToDownloads.pdf: Added.
* Resources/ShareImage.pdf: Added.
Add some temporary artwork.
* Scripts/webkit/messages.py:
(struct_or_class):
ActionMenuHitTestResult is a struct.
* Shared/API/c/WKActionMenuItemTypes.h:
Add new items for image menus.
* Shared/mac/ActionMenuHitTestResult.cpp:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
For now, pass the hit image data across to the UI process as a ShareableBitmap.
* Shared/mac/ActionMenuHitTestResult.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _createActionMenuItemForTag:]):
Refactor action menu item creation into a single function, so that
callers can share code and be much simpler.
(webKitBundleImageNamed):
Add a helper to acquire an image from the WebKit2 bundle.
(-[WKView _copyImage:]):
(-[WKView _saveImageToDownloads:]):
(temporaryPhotosDirectoryPath):
(pathToPhotoOnDisk):
(-[WKView _addImageToPhotos:]):
Add rudimentary implementations of image actions.
(-[WKView _defaultMenuItemsForImage]):
Support the image menu, plus a submenu acquired from NSSharingServicePicker
for the Share menu.
(-[WKView _defaultMenuItems]):
Call _defaultMenuItemsForImage if needed.
(-[WKView _updateActionMenu]):
Refactor _updateActionMenu out of prepareForMenu:withEvent:.
(-[WKView prepareForMenu:withEvent:]):
Ask the Web process to re-hit-test under the location that the menu
will appear. Mark the menu as pending.
(-[WKView _didPerformActionMenuHitTest:]):
When we get the hit test reply, record the result for future use.
(-[WKView willOpenMenu:withEvent:]):
If we got a hit test reply, rebuild the menu immediately. If not, wait
up to 500ms for the reply to come in. This eventually needs to be
cancellable if the menu is rejected in the interim.
(-[WKView didCloseMenu:withEvent:]):
Clear all state when the menu closes.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::performActionMenuHitTestAtLocation):
(WebKit::WebPageProxy::didPerformActionMenuHitTest):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformActionMenuHitTest):
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Plumb didPerformActionMenuHitTest back from WebPageProxy to WKView.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Hit test at the given location, recording the image data if there is any,
and return the result to the UI process.
* WebKit2.xcodeproj/project.pbxproj:
Add the PDFs.
2014-10-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Remove WidgetBackingStoreCairo::create() factory function
https://bugs.webkit.org/show_bug.cgi?id=137943
Reviewed by Darin Adler.
WidgetBackingStoreCairo::create() can be replaced by std::make_unique<>.
Thus this patch removes it, then use std::make_unique<>|std::unique_ptr<>.
* UIProcess/BackingStore.h:
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::createBackingStoreForGTK):
(WebKit::BackingStore::incorporateUpdate):
2014-10-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Remove TextCheckerEnchant::create() factory function
https://bugs.webkit.org/show_bug.cgi?id=137944
Reviewed by Darin Adler.
TextCheckerEnchant::create() can be replaced by std::make_unique<> and std::unique_ptr<>.
* UIProcess/API/gtk/WebKitTextChecker.cpp:
(WebKitTextChecker::WebKitTextChecker):
* UIProcess/API/gtk/WebKitTextChecker.h:
* UIProcess/efl/TextCheckerClientEfl.cpp:
(TextCheckerClientEfl::TextCheckerClientEfl):
* UIProcess/efl/TextCheckerClientEfl.h:
2014-10-22 Antti Koivisto <antti@apple.com>
Revert fix for REGRESSION (r173356): Safari can't install a profile, gets 'Download Failed error
(https://bugs.webkit.org/show_bug.cgi?id=137493)
Turns out the root cause was a bug in MIME type sniffing, https://bugs.webkit.org/show_bug.cgi?id=137855
Remove the workaround.
* Shared/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::startWithHandle):
* Shared/Downloads/mac/DownloadMac.mm:
(WebKit::Download::startWithHandle):
2014-10-22 Beth Dakin <bdakin@apple.com>
Remove action menu web preference
https://bugs.webkit.org/show_bug.cgi?id=137975
Reviewed by Tim Horton.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetActionMenuSupportEnabled): Deleted.
(WKPreferencesGetActionMenuSupportEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
2014-10-22 Chris Dumez <cdumez@apple.com>
[Mac][WK2] Fix applicationIsSafari() detection
https://bugs.webkit.org/show_bug.cgi?id=137893
Reviewed by Alexey Proskuryakov.
Provide an implementation for FrameLoaderClient's new
needsQuickLookResourceCachingQuirks(), which accesses the flag stored
on the WebProcess, which is initialized upon WebProcess creation.
QuickLookMac::computeNeedsQuickLookResourceCachingQuirks() is called
on UIProcess side so that it works reliably and the flag is passed as
parameter when constructing the WebProcess.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::needsQuickLookResourceCachingQuirks):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::needsQuickLookResourceCachingQuirks):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-10-22 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ debug build after r175046.
Remove invalid ASSERT.
* UIProcess/gtk/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::setCursorRect):
2014-10-22 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move GtkInputMethodFilter from Platform to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=137884
Reviewed by Gustavo Noronha Silva.
Merge WebViewBaseInputMethodFilter and GtkInputMethodFilter into a
single class InputMethodFilter. The code is mostly the same, but
instead of having a setWebView method only to get the WebPageProxy,
it has a setPage method that passes the WebPageProxy. The GtkIMContext
client window is set by the WebView when it's realized/unrealized.
* PlatformGTK.cmake:
* Shared/NativeWebKeyboardEvent.h:
* Shared/gtk/NativeWebKeyboardEventGtk.cpp:
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize):
(webkitWebViewBaseUnrealize):
(webkit_web_view_base_class_init):
(webkitWebViewBaseCreateWebPage):
(webkitWebViewBaseEnterFullScreen): Deleted.
* UIProcess/API/gtk/WebViewBaseInputMethodFilter.cpp: Removed.
* UIProcess/API/gtk/WebViewBaseInputMethodFilter.h: Removed.
* UIProcess/gtk/InputMethodFilter.cpp: Added.
(WebKit::InputMethodFilter::handleCommitCallback):
(WebKit::InputMethodFilter::handlePreeditStartCallback):
(WebKit::InputMethodFilter::handlePreeditChangedCallback):
(WebKit::InputMethodFilter::handlePreeditEndCallback):
(WebKit::InputMethodFilter::InputMethodFilter):
(WebKit::InputMethodFilter::~InputMethodFilter):
(WebKit::InputMethodFilter::setEnabled):
(WebKit::InputMethodFilter::setCursorRect):
(WebKit::InputMethodFilter::handleKeyboardEvent):
(WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults):
(WebKit::InputMethodFilter::filterKeyEvent):
(WebKit::InputMethodFilter::confirmComposition):
(WebKit::InputMethodFilter::updatePreedit):
(WebKit::InputMethodFilter::notifyFocusedIn):
(WebKit::InputMethodFilter::notifyFocusedOut):
(WebKit::InputMethodFilter::notifyMouseButtonPress):
(WebKit::InputMethodFilter::confirmCurrentComposition):
(WebKit::InputMethodFilter::cancelContextComposition):
(WebKit::InputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents):
(WebKit::InputMethodFilter::handleCommit):
(WebKit::InputMethodFilter::handlePreeditStart):
(WebKit::InputMethodFilter::handlePreeditChanged):
(WebKit::InputMethodFilter::handlePreeditEnd):
(WebKit::InputMethodFilter::logHandleKeyboardEventForTesting):
(WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting):
(WebKit::InputMethodFilter::logConfirmCompositionForTesting):
(WebKit::InputMethodFilter::logSetPreeditForTesting):
* UIProcess/gtk/InputMethodFilter.h: Added.
(WebKit::InputMethodFilter::context):
(WebKit::InputMethodFilter::setPage):
(WebKit::InputMethodFilter::setTestingMode):
(WebKit::InputMethodFilter::events):
2014-10-21 Tim Horton <timothy_horton@apple.com>
Quick Look preview bubble has unnecessary controls
https://bugs.webkit.org/show_bug.cgi?id=137940
<rdar://problem/18731860>
Reviewed by Simon Fraser.
* UIProcess/API/mac/WKView.mm:
(-[WKView _quickLookURLFromActionMenu:]):
Temporarily use more SPI to allow us to hide the preview bubble's controls.
2014-10-21 Jeff Miller <jeffm@apple.com>
Remove const from WKURLRequestRef parameter to WKContextDownloadURLRequest()
https://bugs.webkit.org/show_bug.cgi?id=137928
Reviewed by Darin Adler.
* UIProcess/API/C/WKContext.cpp:
(WKContextDownloadURLRequest):
* UIProcess/API/C/WKContext.h:
2014-10-21 Anders Carlsson <andersca@apple.com>
WKRemoteObjectCoder should handle floats
https://bugs.webkit.org/show_bug.cgi?id=137926
<rdar://problem/18695126>
Reviewed by Beth Dakin.
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeInvocation):
(-[WKRemoteObjectEncoder encodeFloat:forKey:]):
(decodeInvocationArguments):
(-[WKRemoteObjectDecoder decodeFloatForKey:]):
2014-10-21 Jeff Miller <jeffm@apple.com>
WKContext needs to provide an API to resume a download
https://bugs.webkit.org/show_bug.cgi?id=137507
Reviewed by Darin Adler.
This patch adds WKContextResumeDownload(), which is only supported on the Mac, and requires the
resume data from WKDownloadGetResumeData().
We have to create a sandbox extension for the partially downloaded file in the UI process so the
network or web process can resume writing to it.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::resumeDownload):
Added, calls through to DownloadManager::resumeDownload().
* NetworkProcess/NetworkProcess.h:
Added resumeDownload().
* NetworkProcess/NetworkProcess.messages.in:
Added ResumeDownload message.
* Shared/Downloads/Download.h:
Added resume().
* Shared/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::resumeDownload):
Added. The URL being downloaded is part of the opaque resumeData, so we can't specify it when the
Download is constructed.
* Shared/Downloads/DownloadManager.h:
Added resumeDownload().
* Shared/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::resume):
Added, not implemented on this platform.
* Shared/Downloads/mac/DownloadMac.mm:
(WebKit::Download::resume):
Added. Consumes the sandbox extension, resumes the download, and sets m_request after the
NSURLDownload has been created. Note that we already have code to revoke the sandbox extension when
the download is finished, canceled, or fails.
* Shared/Downloads/soup/DownloadSoup.cpp:
(WebKit::Download::resume):
Added, not implemented on this platform.
* UIProcess/API/C/WKContext.cpp:
(WKContextResumeDownload):
Added.
* UIProcess/API/C/WKContext.h:
Added WKContextResumeDownload().
* UIProcess/WebContext.cpp:
(WebKit::WebContext::resumeDownload):
Added. Creates a sandbox extension for the existing file and includes it in the message to the
network or web process.
* UIProcess/WebContext.h:
Added resumeDownload().
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::resumeDownload):
Added, calls through to DownloadManager::resumeDownload().
* WebProcess/WebProcess.h:
Added resumeDownload().
* WebProcess/WebProcess.messages.in:
Added ResumeDownload message.
2014-10-20 Michael Catanzaro <mcatanzaro@igalia.com>
Change the default TLS errors policy to WEBKIT_TLS_ERRORS_POLICY_FAIL
https://bugs.webkit.org/show_bug.cgi?id=137832
Reviewed by Carlos Garcia Campos.
Too many general-purpose browsers that really need this policy
are not selecting it, so let's do so for them.
* UIProcess/API/gtk/WebKitWebContext.cpp:
(createDefaultWebContext):
2014-10-21 Michael Catanzaro <mcatanzaro@igalia.com>
[SOUP] Disable SSLv3
https://bugs.webkit.org/show_bug.cgi?id=137859
Reviewed by Carlos Garcia Campos.
Set G_TLS_GNUTLS_PRIORITY if unset.
* NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
(main):
* WebProcess/EntryPoint/unix/WebProcessMain.cpp:
(main):
2014-10-20 Chris Dumez <cdumez@apple.com>
ResourceRequest deserialization unnecessarily calls partitionName() on encoded cache partition
https://bugs.webkit.org/show_bug.cgi?id=137797
Reviewed by Darin Adler.
This patch adds a |needsValidation| argument to
ResourceRequest::setCachePartition() setter so that the caller can
indicate that the partition name is valid (because it was already
processed by partitionName() before). Use this new argument in
ArgumentCoder<ResourceRequest>::decode() to spent a bit less time
deserializing resource requests.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ResourceRequest>::decode):
2014-10-20 Beth Dakin <bdakin@apple.com>
Action menu items should have tags
https://bugs.webkit.org/show_bug.cgi?id=137898
Reviewed by Anders Carlsson.
* Shared/API/c/WKActionMenuItemTypes.h: Added.
* UIProcess/API/mac/WKView.mm:
(-[WKView _defaultMenuItemsForLink]):
* WebKit2.xcodeproj/project.pbxproj:
2014-10-20 Beth Dakin <bdakin@apple.com>
Add support for action menus
https://bugs.webkit.org/show_bug.cgi?id=137891
rdar://problem/18451638
rdar://problem/18694470
Reviewed by Anders Carlsson.
Temporary artwork needed for menu item.
* Resources/OpenInNewWindowTemplate.pdf: Added.
* WebKit2.xcodeproj/project.pbxproj:
Add a preference that defaults to false for action menu support.
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetActionMenuSupportEnabled):
(WKPreferencesGetActionMenuSupportEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
New SPI. WebKit clients can implement this method to customize the action menu.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Create the action menu if it is supported.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]):
Methods to implement the default menu actions.
(-[WKView _openURLFromActionMenu:]):
(-[WKView _addToReadingListFromActionMenu:]):
(-[WKView _quickLookURLFromActionMenu:]):
Add action menus support for links. Populate the menu at the right time.
(-[WKView _defaultMenuItemsForLink]):
(-[WKView _defaultMenuItems]):
(-[WKView prepareForMenu:withEvent:]):
(-[WKView _actionMenuItemsForHitTestResult:defaultActionMenuItems:]):
New member variable caches the HitTestResult on mouse move.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::mouseDidMoveOverElement):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::activeActionMenuHitTestResult):
2014-10-20 Timothy Hatcher <timothy@apple.com>
Web Inspector: Delay and white area when Web Inspector crashes
https://bugs.webkit.org/show_bug.cgi?id=137230
Reviewed by Anders Carlsson.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::processDidCrash): Added.
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): Hook up loader client.
2014-10-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Generate all Inspector domains together in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=137748
Reviewed by Brian Burg.
* PlatformGTK.cmake:
2014-10-19 Antti Koivisto <antti@apple.com>
Avoid unnecessary NSURLResponse construction for QuickLook on iOS
https://bugs.webkit.org/show_bug.cgi?id=137876
Reviewed by Andy Estes.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponse):
Switch to the modified QuickLookHandle interface that does not need NSURLResponse.
2014-10-16 Andy Estes <aestes@apple.com>
[iOS] Capture WKActionSheetAssistant's interaction with WKContentView in a @protocol
https://bugs.webkit.org/show_bug.cgi?id=137792
Reviewed by Tim Horton.
WKPDFView would like to use WKActionSheetAssistant to show an action sheet when long-pressing a link, but it
can't so long as WKActionSheetAssistant is tightly coupled to WKContentView. Resolve this by factoring
WKActionSheetAssistant's interaction with WKContentView into a new protocol called
WKActionSheetAssistantDelegate and having WKContentView conform to this protocol.
* UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction elementActionWithTitle:actionHandler:]): Changed instances of WKContentView * to id <WKActionSheetAssistantDelegate>.
(+[_WKElementAction elementActionWithType:customTitle:]): Ditto.
(-[_WKElementAction _runActionWithElementInfo:delegate:]): Ditto.
(copyElement): Deleted.
(saveImage): Deleted.
(-[_WKElementAction _runActionWithElementInfo:view:]): Deleted.
* UIProcess/API/Cocoa/_WKElementActionInternal.h:
* UIProcess/ios/WKActionSheet.h:
* UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet init]): Renamed from initWithView: since WKActionSheet no longer needs to know about a view.
(-[WKActionSheet _didRotateAndLayout]): Called -[WKActionSheetDelegate updatePositionInformation].
(-[WKActionSheet initWithView:]): Deleted.
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant delegate]): Added a getter for the delegate property.
(-[WKActionSheetAssistant setDelegate:]): Added a setter for the delegate property.
(-[WKActionSheetAssistant initWithView:]): Changed argument type from WKContentView * to UIView *.
(-[WKActionSheetAssistant initialPresentationRectInHostViewForSheet]): Returned CGRectZero if there is no delegate.
Otherwise, retrieved positionInformation from the delegate.
(-[WKActionSheetAssistant presentationRectInHostViewForSheet]): Ditto.
(-[WKActionSheetAssistant updatePositionInformation]): Called -[WKActionSheetAssistantDelegate updatePositionInformation].
(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]): Returned early if there is no delegate.
Otherwise, retrieved positionInformation from the delegate.
(-[WKActionSheetAssistant showImageSheet]): Ditto.
(-[WKActionSheetAssistant showLinkSheet]): Ditto.
(-[WKActionSheetAssistant showDataDetectorsSheet]): Ditto.
(-[WKActionSheetAssistant cleanupSheet]):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]): Installed self as WKActionSheetAssistant's delegate.
(-[WKContentView updatePositionInformation]): Renamed from _updatePositionInformation.
(-[WKContentView performAction:]): Renamed from _performAction:.
(-[WKContentView openElementAtLocation:]): Called _attemptClickAtLocation:.
(-[WKContentView actionsForElement:defaultActions:]): Called API::UIClient::actionsForElement().
(-[WKContentView startInteractionWithElement:]): Called WebPageProxy::startInteractionWithElementAtPosition().
(-[WKContentView stopInteraction]): Called WebPageProxy::stopInteraction().
(-[WKContentView _updatePositionInformation]): Deleted.
(-[WKContentView _performAction:]): Deleted.
2014-10-20 Carlos Garnacho <carlosg@gnome.org>
[GTK] Improve zooming gesture positioning
https://bugs.webkit.org/show_bug.cgi?id=137822
Reviewed by Carlos Garcia Campos.
* UIProcess/WebPageProxy.h:
* UIProcess/gtk/GestureController.cpp:
(WebKit::GestureController::ZoomGesture::center):
(WebKit::GestureController::ZoomGesture::begin):
(WebKit::GestureController::ZoomGesture::handleZoom):
(WebKit::GestureController::ZoomGesture::scaleChanged): Calculate
the proper view coordinates for the current offset/scale, based
on the initial gesture center point in document coordinates, and
the current center/scale.
* UIProcess/gtk/GestureController.h:
* UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::getCenterForZoomGesture): Added. Synchronous
call to retrieve the zoom gesture anchor point, in document coordinates.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Added stub.
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::getCenterForZoomGesture): Added. Getter for the
translated coordinates used as the anchor point of the zoom gesture.
2014-10-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remove the factory method from DragAndDropHandler
https://bugs.webkit.org/show_bug.cgi?id=137872
Reviewed by Sergio Villar Senin.
Make the constructor public and use std::make_unique instead.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDragAndDropHandler):
* UIProcess/gtk/DragAndDropHandler.cpp:
(WebKit::DragAndDropHandler::create): Deleted.
* UIProcess/gtk/DragAndDropHandler.h:
2014-10-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add initial gestures support
https://bugs.webkit.org/show_bug.cgi?id=137812
Reviewed by Sergio Villar Senin.
Now that GTK+ has support for gestures, we can use it to handle
touch events and allow to scroll, zoom and tap with the fingers.
* PlatformGTK.cmake: Add new files to compilation.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::doneWithTouchEvent): When the touch event
hasn't been handled by the web process pass it to the
GestureController and only fallback to pointer emulation when the
GestureController doesn't handle the event.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseTouchEvent): If the GestureController is
currently processing gestures is because the START touch event was
not handled by the web process, so pass any successive touch
events to the GestureController directly.
(webkitWebViewBaseGestureController): Create the GestureController
on demand and return a reference.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/gtk/GestureController.cpp: Added.
(WebKit::GestureController::create): Create a GestureController.
(WebKit::GestureController::GestureController): Initialize the
Gesture memebers.
(WebKit::GestureController::handleEvent): Pass the event to the gestures.
(WebKit::GestureController::isProcessingGestures): Whether
Gestures are active.
(WebKit::GestureController::Gesture::Gesture): Base class for gestures.
(WebKit::GestureController::Gesture::isActive): Whether the
gesture is active.
(WebKit::GestureController::Gesture::handleEvent): Pass the event
to the GtkGesture to process it.
(WebKit::GestureController::DragGesture::handleDrag): Send a wheel
event corresponding to the drag gesture to the web process.
(WebKit::GestureController::DragGesture::handleTap): Send move,
press and release events corresponding to a tap gesture to the web process.
(WebKit::GestureController::DragGesture::begin): Start a drag
gesture and schedule a timer to discard tap gesture in case of
long press.
(WebKit::GestureController::DragGesture::update): If the actual
drag hasn't started yet, check the drag threshold to decide
whether to start the drag or not. Otherwise call handleDrag() to
send the appropriate events to the web process.
(WebKit::GestureController::DragGesture::end): If the drag gesture
finishes and the drag didn't happen (it wasn't a long press and
drag threshold was not reached), call handleTap() to emulate a
click event.
(WebKit::GestureController::DragGesture::DragGesture): Initialize
the GtkGestureDrag.
(WebKit::GestureController::ZoomGesture::begin): Save the current
page scale factor and the center point of the gesture.
(WebKit::GestureController::ZoomGesture::scaleChanged): Schedule a
page scale change in an idle for the given scale value.
(WebKit::GestureController::ZoomGesture::ZoomGesture): Initialize
the GtkGestureZoom.
* UIProcess/gtk/GestureController.h: Added.
2014-10-19 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for all remaining RenderObject subclasses
https://bugs.webkit.org/show_bug.cgi?id=137845
Reviewed by Darin Adler.
Use is<>() / downcast<>() for all remaining RenderObject subclasses and
clean up the surrounding code.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginProcessCrashed):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
2014-10-19 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move GtkDragAndDropHelper from Platform to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=137422
Reviewed by Martin Robinson.
WebKitWebViewBase is currently the only user of
GtkDragAndDropHelper, that was added to share the code with
WebKit1. Move all the drag and drop logic to a new class
DragAndDropHandler.
* PlatformGTK.cmake: Add new files to compilation.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::startDrag):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseConstructed):
(webkitWebViewBaseDragDataGet):
(webkitWebViewBaseDragEnd):
(webkitWebViewBaseDragDataReceived):
(webkitWebViewBaseDragMotion):
(webkitWebViewBaseDragLeave):
(webkitWebViewBaseDragDrop):
(webkitWebViewBaseDragAndDropHandler):
(dragExitedCallback): Deleted.
(webkitWebViewBaseStartDrag): Deleted.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/gtk/DragAndDropHandler.cpp: Added.
(WebKit::DragAndDropHandler::create):
(WebKit::DragAndDropHandler::DragAndDropHandler):
(WebKit::DragAndDropHandler::DroppingContext::DroppingContext):
(WebKit::dragOperationToGdkDragActions):
(WebKit::dragOperationToSingleGdkDragAction):
(WebKit::gdkDragActionToDragOperation):
(WebKit::DragAndDropHandler::startDrag):
(WebKit::DragAndDropHandler::fillDragData):
(WebKit::DragAndDropHandler::finishDrag):
(WebKit::DragAndDropHandler::dataObjectForDropData):
(WebKit::DragAndDropHandler::dragEntered):
(WebKit::DragAndDropHandler::requestDragData):
(WebKit::DragAndDropHandler::dragMotion):
(WebKit::DragAndDropHandler::dragLeave):
(WebKit::DragAndDropHandler::drop):
* UIProcess/gtk/DragAndDropHandler.h: Added.
2014-10-18 Dan Bernstein <mitz@apple.com>
WorkQueue dispatches functions but isn’t a FunctionDispatcher
https://bugs.webkit.org/show_bug.cgi?id=137853
Reviewed by Anders Carlsson.
* Platform/WorkQueue.h: Changed to inherit from FunctionDispatcher.
2014-10-18 Michael Catanzaro <mcatanzaro@igalia.com>
[GTK] Improve documentation of webkit_web_view_get_tls_info()
https://bugs.webkit.org/show_bug.cgi?id=137852
Reviewed by Martin Robinson.
* UIProcess/API/gtk/WebKitWebView.cpp:
2014-10-17 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for RenderBox
https://bugs.webkit.org/show_bug.cgi?id=137804
Reviewed by Andreas Kling.
Use is<>() / downcast<>() for RenderBox and clean up the surrounding
code.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
(WebKit::WebPage::plugInIsPrimarySize):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
2014-10-16 Simon Fraser <simon.fraser@apple.com>
[iOS] Turn off font autosizing for iOS WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=137806
Reviewed by Sam Weinig.
Confusingly, WKPreferencesSetTextAutosizingEnabled() does nothing on iOS.
Instead, we have to add WKPreferencesSetMinimumZoomFontSize() and set it to 0
to disable font autosizing.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetMinimumZoomFontSize):
(WKPreferencesGetMinimumZoomFontSize):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
2014-10-17 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL] REGRESSION(r173929): It broke the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=137522
Reviewed by Csaba Osztrogonác.
r173929 let web inspector use a separate web process. Besides it changed that the inspector is shown
as docking mode by default. However EFL port doesn't support to show web inspector as docking window yet.
This patch is to show web inspector on EFL new window as before. Docking mode should be implemented by
upcoming patch.
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::platformAttach):
2014-10-17 Carlos Garcia Campos <cgarcia@igalia.com>
[GLIB] Add API to GMainLoopSource to schedule sources after a delay in microseconds
https://bugs.webkit.org/show_bug.cgi?id=137782
Reviewed by Sergio Villar Senin.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::layerFlushTimerFired): Use microseconds
instead of milliseconds.
2014-10-17 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move touch events handling from Platform to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=137735
Reviewed by Sergio Villar Senin.
GtkTouchContextHelper was only used by WebKitWebViewBase, since
it's the only one that can create touch events. The code has been
simplified by processing the events in the view, and the native
touch events are now created with the native event and touch points.
* Shared/NativeWebTouchEvent.h:
(WebKit::NativeWebTouchEvent::touchContext): Deleted.
* Shared/gtk/NativeWebTouchEventGtk.cpp:
(WebKit::NativeWebTouchEvent::NativeWebTouchEvent): Pass touch
points instead of touch context to WebEventFactory::createWebTouchEvent().
* Shared/gtk/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebTouchEvent): Create the
WebTouchEvent for the given native event and points.
(WebKit::touchPhaseFromEvents): Deleted.
(WebKit::appendTouchEvent): Deleted.
* Shared/gtk/WebEventFactory.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(appendTouchEvent): Helper function to create a
WebPlatformTouchPoint for the given native event and add it to the
list of touch points.
(webkitWebViewBaseGetTouchPointForEvent): Build the touch point
list for the event.
(webkitWebViewBaseTouchEvent): Process the touch event.
(webkitWebViewBaseDragDataReceived): Deleted.
2014-10-16 Pascal Jacquemart <p.jacquemart@samsung.com>
Removing CUSTOM_PROTOCOLS guard
https://bugs.webkit.org/show_bug.cgi?id=137741
Reviewed by Benjamin Poulain.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
* Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:
* Shared/Network/CustomProtocols/CustomProtocolManager.h:
* Shared/Network/CustomProtocols/CustomProtocolManager.messages.in:
* Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:
* Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h:
* Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* Shared/Network/NetworkProcessCreationParameters.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/soup/WKAPICastSoup.h:
* UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp:
(WKSoupCustomProtocolRequestManagerGetTypeID):
(WKSoupCustomProtocolRequestManagerSetClient):
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
* UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.messages.in:
* UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
* UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h:
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp:
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::NetworkProcessProxy):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers):
(WebKit::WebContext::unregisterSchemeForCustomProtocol):
* UIProcess/WebContext.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
* UIProcess/WebProcessProxy.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess):
(WebKit::WebContext::platformInitializeNetworkProcess):
* WebKit2Prefix.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
* WebProcess/soup/WebKitSoupRequestGeneric.cpp:
(webkitSoupRequestGenericSendAsync):
(webkitSoupRequestGenericSendFinish):
* WebProcess/soup/WebKitSoupRequestGeneric.h:
2014-10-16 Simon Fraser <simon.fraser@apple.com>
Crash under RemoteLayerTreeHost::getLayer() when closing a tab
https://bugs.webkit.org/show_bug.cgi?id=137796
rdar://problem/18547565
Reviewed by Tim Horton.
CA can call our animation delegate after the RemoteLayerTreeHost has been
destroyed. CAAnimation retains its delegate, so it's safe for us to null out
the WKAnimationDelegate's pointer to the RemoteLayerTreeHost when tearing down
the RemoteLayerTreeHost.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::~RemoteLayerTreeHost):
(WebKit::RemoteLayerTreeHost::animationDidEnd):
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(-[WKAnimationDelegate invalidate]):
(-[WKAnimationDelegate animationDidStart:]):
(-[WKAnimationDelegate animationDidStop:finished:]):
2014-10-16 Tim Horton <timothy_horton@apple.com>
Implement selection services menu for Legacy WebKit
https://bugs.webkit.org/show_bug.cgi?id=137582
<rdar://problem/18604241>
Reviewed by Brady Eidson.
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
Add a note that we should transition to using replaceSelectionWithAttributedString.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::handleSelectionServiceClick):
Allow editor services in editable-but-not-rich-text areas, just like in WebKit1.
2014-10-16 Tim Horton <timothy_horton@apple.com>
Various crashes in ViewGestureControllerIOS when closing a tab while a swipe gesture is in progress
https://bugs.webkit.org/show_bug.cgi?id=137770
<rdar://problem/17916459>
Reviewed by Dan Bernstein.
When tearing down a WKWebView in the middle of a swipe gesture, a variety of
UI process crashes were observed. First, two uses of potentially deleted objects
(the WebBackForwardListItem and ViewGestureController), which were fixed by
extending the object's lifetime and checking for its liveness, respectively.
Second, a potential null-deref of DrawingArea if the timing of endSwipeGesture
vs. page teardown was such that DrawingArea was null but everything else was in line.
Lastly, another case of messaging a potentially deleted object (specifically,
the _UIViewControllerTransitionContext's animator) in a callback from CA, which
was fixed by nulling out the animator (and a few other properties) when tearing
down the ViewGestureController.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(-[WKSwipeTransitionController invalidate]):
Clear the soon-to-be-invalid ViewGestureController pointer.
(WebKit::ViewGestureController::~ViewGestureController):
Call [WKSwipeTransitionController invalidate] upon destruction.
Clear our transition context's interactor and animator, and inform it that
the transition is not in flight. This avoids a crash when calling back
to the already-destroyed animator later.
(WebKit::ViewGestureController::beginSwipeGesture):
Keep a reference to the target WebBackForwardListItem; this avoids
it being deleted between here and the transition completion block firing.
Look up the ViewGestureController by pageID, just like we do in endSwipeGesture,
to avoid situations where the callback fires after the WKWebView/ViewGestureController
have gone away.
Hold on to our _UIViewControllerOneToOneTransitionContext, so that we can do the
aforementioned clearing upon deallocation.
(WebKit::ViewGestureController::endSwipeGesture):
Null check the DrawingArea. If it is null, instead of doing our normal delayed logic
for swipe snapshot teardown, just put things back together immediately.
(WebKit::ViewGestureController::removeSwipeSnapshot):
Clear m_swipeTransitionContext.
2014-10-16 Antti Koivisto <antti@apple.com>
REGRESSION (r173356): Downloading a disk image appends ".txt" to it
https://bugs.webkit.org/show_bug.cgi?id=137493
<rdar://problem/18321947>
Reviewed by Alexey Proskuryakov.
* Shared/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::startWithHandle):
* Shared/Downloads/mac/DownloadMac.mm:
(WebKit::Download::startWithHandle):
It appears that the synthesized NS/CFURLResponse fails to serialize the suggested filename correctly
unless it has been accessed first.
2014-10-15 Dan Bernstein <mitz@apple.com>
[Cocoa] "Plug-in will handle load" error isn't declared in the modern API
https://bugs.webkit.org/show_bug.cgi?id=137747
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKError.mm: Define _WKLegacyErrorDomain.
* UIProcess/API/Cocoa/WKErrorInternal.h: Changed to import WKErrorPrivate.h.
* UIProcess/API/Cocoa/WKErrorPrivate.h: Added. Declares _WKLegacyErrorDomain
and _WKLegacyErrorPlugInWillHandleLoad.
* WebKit2.xcodeproj/project.pbxproj: Added new private header.
2014-10-15 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for TransformOperation subclasses
https://bugs.webkit.org/show_bug.cgi?id=137731
Reviewed by Darin Adler.
Use is<>() / downcast<>() for TransformOperation subclasses and clean
up the surrounding code.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<TransformOperations>::encode):
2014-10-15 Alexey Proskuryakov <ap@apple.com>
[Mac] Allow some Kerberos related paths in sandbox
https://bugs.webkit.org/show_bug.cgi?id=137666
rdar://problem/17965010
Reviewed by Darin Adler.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* WebProcess/com.apple.WebProcess.sb.in:
2014-10-15 Alexey Proskuryakov <ap@apple.com>
[Mac] Allow plug-ins to read managed preferences
https://bugs.webkit.org/show_bug.cgi?id=137665
<rdar://problem/18255601>
Reviewed by Darin Adler.
* Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
2014-10-14 Joonghun Park <jh718.park@samsung.com>
[WK2][EFL] Fix the problem that threads created by a DispatchQueueEfl are not destroyed
even after the DispatchQueueEfl has been destructed
https://bugs.webkit.org/show_bug.cgi?id=137195
Reviewed by Gyuyoung Kim.
Linux and Unix System's pthreads are created in joinable state by default.
If threads aren't destructed explicitly, it will be still live
until process which created the thread is dead.
Besides it may cause out of capacity range of thread creation in a process.
It is one of hidden defects.
This patch calls detachThread() to detach thread immediately after it is created.
So the thread can be destroyed as soon as the thread's ThreadContext::function()
returns.
* Platform/efl/DispatchQueueEfl.cpp:
(DispatchQueue::ThreadContext::start):
2014-10-14 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for PlatformCAAnimation subclasses
https://bugs.webkit.org/show_bug.cgi?id=137722
Reviewed by Simon Fraser.
Use is<>() / downcast<>() for PlatformCAAnimation subclasses and clean
up the surrounding code.
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::copy):
(WebKit::PlatformCAAnimationRemote::copyTimingFunctionFrom):
(WebKit::PlatformCAAnimationRemote::copyFromValueFrom):
(WebKit::PlatformCAAnimationRemote::copyToValueFrom):
(WebKit::PlatformCAAnimationRemote::copyValuesFrom):
(WebKit::PlatformCAAnimationRemote::copyKeyTimesFrom):
(WebKit::PlatformCAAnimationRemote::copyTimingFunctionsFrom):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::addAnimationForKey):
(WebKit::PlatformCALayerRemote::animationStarted):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
2014-10-14 Alexey Proskuryakov <ap@apple.com>
REGRESSION (r165356): Issues with Japanese text input
https://bugs.webkit.org/show_bug.cgi?id=137719
rdar://problem/18431952
rdar://problem/18483741
Reviewed by Darin Adler.
* WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection):
In sync code path, ensure consistent message delivery order by adding
a DispatchMessageEvenWhenWaitingForSyncReply flag. This way, delayed
EditorStateChanged messages won't confuse UI process.
2014-10-14 Anders Carlsson <andersca@apple.com>
Hide the find indicator when starting a swipe
https://bugs.webkit.org/show_bug.cgi?id=137711
Reviewed by Tim Horton.
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::navigationGestureDidBegin):
2014-10-14 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for RenderImage
https://bugs.webkit.org/show_bug.cgi?id=137683
Reviewed by Mihnea Ovidenie.
Use is<>() / downcast<>() for RenderImage.
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::cachedImage):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):
2014-10-13 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][CMake] Non-ninja build is broken since r174422
https://bugs.webkit.org/show_bug.cgi?id=137656
Reviewed by Philippe Normand.
Make WebKit2-forwarding-headers depend only on static,
non-generated sources.
* CMakeLists.txt:
* PlatformGTK.cmake:
2014-10-13 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for PlatformCALayer subclasses
https://bugs.webkit.org/show_bug.cgi?id=137661
Reviewed by Simon Fraser.
Use is<>() / downcast<>() for PlatformCALayer subclasses and clean up
the surrounding code.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::~PlatformCALayerRemote):
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
(WebKit::PlatformCALayerRemote::setSublayers):
(WebKit::PlatformCALayerRemote::appendSublayer):
(WebKit::PlatformCALayerRemote::insertSublayer):
(WebKit::PlatformCALayerRemote::replaceSublayer):
(WebKit::PlatformCALayerRemote::adoptSublayers):
(WebKit::PlatformCALayerRemote::setMask):
(WebKit::PlatformCALayerRemote::copyFiltersFrom):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::buildTransaction):
2014-10-13 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for Filter / FilterOperation subclasses
https://bugs.webkit.org/show_bug.cgi?id=137644
Reviewed by Darin Adler.
Use is<>() / downcast<>() for Filter / FilterOperation subclasses.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<WebCore::FilterOperations>::encode):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FilterOperation>::encode):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
2014-10-12 Sergio Villar Senin <svillar@igalia.com>
[SOUP] [WK2] WebProcess and NetworkProcess initialization clears cache contents
https://bugs.webkit.org/show_bug.cgi?id=137489
Reviewed by Carlos Garcia Campos.
Temporarily set the SoupCache's maximum size to a huge value
before calling soup_cache_load() so that the cache is not shrinked
to the default value.
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-10-12 Ryuan Choi <ryuan.choi@gmail.com>
[EFL] Introduce EWebKit_Extension
https://bugs.webkit.org/show_bug.cgi?id=134921
Reviewed by Gyuyoung Kim.
EWebKit2 does not provide the functionality to extend WebProcess.
Although there is ewk_context_new_with_injected_bundle_path() in ewebkit2 APIs,
application developers can not make bundle object without touching WK APIs
which ewebkit2 does not expose.
This patch introduces EWebKit_Extension, basic structure for the extension of WebProcess.
* PlatformEfl.cmake:
Added files for the EWebKit_Extension and install them properly.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::EwkContext):
(bundlePathForExtension):
(EwkContext::create):
(EwkContext::getInjectedBundleInitializationUserData):
(EwkContext::setMessageFromInjectedBundleCallback):
(ewk_context_new_with_extensions_path):
Deleted because ewebkit2 does not have a way to make injected bundle.
Instead, Ewk_Extension will cover the same functionalities.
(ewk_context_new_with_injected_bundle_path): Deleted.
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/ewk_context_private.h:
(EwkContext::extensionsPath):
* UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp: Removed.
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
(EWK2UnitTest::EWK2UnitTestEnvironment::extensionSample):
(EWK2UnitTest::EWK2UnitTestEnvironment::injectedBundleSample): Renamed injectedBundleSample to extensionSample.
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
* UIProcess/API/efl/tests/extensions/extension_sample.cpp: Copied from Source/WebKit2/UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp.
* UIProcess/API/efl/tests/test_ewk2_context.cpp: Renamed ewk_context_new_with_injected_bundle_path to ewk_context_new_with_extensions_path.
(TEST_F):
* WebProcess/InjectedBundle/API/efl/EWebKit_Extension.h: Added.
* WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: Added.
(EwkExtension::append):
(EwkExtension::remove):
(ewk_extension_client_add):
(ewk_extension_client_del):
* WebProcess/InjectedBundle/API/efl/ewk_extension.h: Added.
* WebProcess/InjectedBundle/API/efl/ewk_extension_private.h: Added.
(EwkExtension::EwkExtension):
(EwkExtension::~EwkExtension):
* WebProcess/efl/ExtensionManagerEfl.cpp: Added.
(WebKit::ExtensionManagerEfl::shared):
(WebKit::ExtensionManagerEfl::ExtensionManagerEfl):
(WebKit::ExtensionManagerEfl::initialize):
* WebProcess/efl/ExtensionManagerEfl.h: Added.
* WebProcess/efl/WebInjectedBundleMainEfl.cpp: Added.
(WKBundleInitialize):
* efl/ewebkit2-extension.pc.in: Added.
2014-10-10 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for Image subclasses
https://bugs.webkit.org/show_bug.cgi?id=137625
Reviewed by Andreas Kling.
Use is<>() / downcast<>() for Image subclasses.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::pluginSnapshotTimerFired):
2014-10-10 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for GraphicsLayer subclasses
https://bugs.webkit.org/show_bug.cgi?id=137595
Reviewed by Darin Adler.
Use is<>() / downcast<>() for GraphicsLayer subclasses and clean up the
surrounding code.
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::layerForTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::shadowLayerForTransientZoom):
2014-10-10 Pascal Jacquemart <p.jacquemart@samsung.com>
Fix debug build on EFL after r174584
https://bugs.webkit.org/show_bug.cgi?id=137613
Reviewed by Christophe Dumez.
* UIProcess/efl/RequestManagerClientEfl.cpp:
(WebKit::RequestManagerClientEfl::RequestManagerClientEfl):
2014-10-10 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for RenderBoxModelObject
https://bugs.webkit.org/show_bug.cgi?id=137587
Reviewed by Mihnea Ovidenie.
Use is<>() / downcast<>() for RenderBoxModelObject and clean up the
surrounding code.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::renderer):
(WebKit::PluginView::invalidateRect):
2014-10-10 Pascal Jacquemart <p.jacquemart@samsung.com>
[SOUP] Remove custom URI schemes implementation
https://bugs.webkit.org/show_bug.cgi?id=128169
Reviewed by Carlos Garcia Campos.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/C/soup/WKAPICastSoup.h:
* UIProcess/API/C/soup/WKContextSoup.cpp: Removed.
* UIProcess/API/C/soup/WKSoupRequestManager.cpp: Removed.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveURIRequest): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/soup/WebSoupRequestManagerClient.cpp: Removed.
* UIProcess/soup/WebSoupRequestManagerProxy.cpp: Removed.
* UIProcess/soup/WebSoupRequestManagerProxy.messages.in: Removed.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
* WebProcess/soup/WebKitSoupRequestGeneric.cpp:
(webkitSoupRequestGenericSendAsync):
(webkitSoupRequestGenericSendFinish):
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
* WebProcess/soup/WebSoupRequestManager.cpp: Removed.
* WebProcess/soup/WebSoupRequestManager.messages.in: Removed.
2014-10-09 Dean Jackson <dino@apple.com>
Remove ENABLE_CSS3_CONDITIONAL_RULES
https://bugs.webkit.org/show_bug.cgi?id=137571
Reviewed by Simon Fraser.
* Configurations/FeatureDefines.xcconfig:
2014-10-09 Tim Horton <timothy_horton@apple.com>
Move ServicesOverlayController to WebCore
https://bugs.webkit.org/show_bug.cgi?id=137416
<rdar://problem/18546283>
Reviewed by Anders Carlsson.
* Platform/Logging.h:
Move Services logging channel to WebCore.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::handleTelephoneNumberClick):
(WebKit::WebChromeClient::handleSelectionServiceClick):
(WebKit::WebChromeClient::hasRelevantSelectionServices):
Implement services-related ChromeClient callbacks.
Clicks are forwarded to WebPageMac where they do what they used to;
hasRelevantSelectionServices is implemented as it was when it lived
inside ServicesOverlayController.
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged): Deleted.
(WebKit::WebEditorClient::selectionRectsDidChange): Deleted.
* WebProcess/WebCoreSupport/WebEditorClient.h:
Remove WebEditorClient overrides for now-removed functions.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::updatePreferences):
Forward serviceControlsEnabled setting to WebCore.
(WebKit::WebPage::servicesOverlayController): Deleted.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::serviceControlsEnabled): Deleted.
2014-10-09 Andy Estes <aestes@apple.com>
[iOS] Crash in CFURLDownloadClient.didFail if the download has a null resumeData
https://bugs.webkit.org/show_bug.cgi?id=137551
Reviewed by David Kilzer.
CFDataGetBytePtr() and CFDataGetLength() crash if passed a null value.
* Shared/Downloads/ios/DownloadIOS.mm:
(WebKit::setUpDownloadClient):
2014-10-09 Carlos Garcia Campos <cgarcia@igalia.com>
[X11] Plugin process crashes in NetscapePlugin::platformPostInitialize()
https://bugs.webkit.org/show_bug.cgi?id=137426
Reviewed by Darin Adler.
For some reason flash crashes when NPP_GetValue is called with
NPPVpluginCancelSrcStream, but only in windowed mode. Not calling
NPP_GetValue and unconditionally loading the source URL in the
browser fixes the crash and plugins work normally. We can handle
this particular case with a new quirk.
* Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
(WebKit::NetscapePluginModule::determineQuirks): Add
DoNotCancelSrcStreamInWindowedMode quirk if it's flash plugin.
* Shared/Plugins/PluginQuirks.h: Add
DoNotCancelSrcStreamInWindowedMode quirk.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::shouldLoadSrcURL): Return early if plugin
is windowed and DoNotCancelSrcStreamInWindowedMode quirk is present.
2014-10-09 Chris Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for Widget subclasses
https://bugs.webkit.org/show_bug.cgi?id=137549
Reviewed by Darin Adler.
Use is<>() / downcast<>() for Widget subclasses and clean up the
surrounding code.
* Shared/WebRenderObject.cpp:
(WebKit::WebRenderObject::WebRenderObject):
2014-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use the PageLoadState observer also to monitor title and estimated load progress
https://bugs.webkit.org/show_bug.cgi?id=136997
Reviewed by Gustavo Noronha Silva.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(attachLoaderClientToView): Remove implementation of
didReceiveTitleForFrame, didStartProgress, didChangeProgress and
didFinishProgress.
(didReceiveTitleForFrame): Deleted.
(didChangeProgress): Deleted.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_estimated_load_progress): Return the value
directly from the PageLoadState object, since we don't need to
cache the value anymore.
(webkitWebViewSetTitle): Deleted.
(webkitWebViewSetEstimatedLoadProgress): Deleted.
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
2014-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
Race condition with WebKitWebView:is-loading after starting page load
https://bugs.webkit.org/show_bug.cgi?id=136692
Reviewed by Gustavo Noronha Silva.
Use PageLoadState::Observer to update both is-loading and uri
properties, instead of manually update them. This ensures that our
web view is always in sync with the WebPageProxy so that
webkit_web_view_is_loading() returns true right after requesting
any load. We still need to manually set the is-loading property
only in the case where we delay the emission of the load-changed
signals when waiting for the main resource. The bahaviour is a bit
different but still consistent with what our API documentation says.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(attachLoaderClientToView): Remove
didSameDocumentNavigationForFrame implementation, since we are
already notified about the URL change by the PageLoadState::Observer.
(didSameDocumentNavigationForFrame): Deleted.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewSetIsLoading): No longer update the URI when
changing the is-loading property.
(webkitWebViewConstructed): Crate a PageLoadStateObserver and add
it to the PageLoadState.
(webkitWebViewDispose): Remove the PageLoadStateObserver from the PageLoadState.
(webkitWebViewEmitLoadChanged): Add isDelayedEvent parameter to
update the is-loading property accordingly when emitting the
delayed events.
(webkitWebViewEmitDelayedLoadEvents): Pass true as isDelayedEvent
parameter of webkitWebViewEmitLoadChanged().
(webkitWebViewLoadChanged): Pass false as isDelayedEvent parameter
of webkitWebViewEmitLoadChanged().
(webkitWebViewLoadFailed):
(webkitWebViewLoadFailedWithTLSErrors):
(webkitWebViewUpdateURI): Deleted.
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
2014-10-08 Christophe Dumez <cdumez@apple.com>
Use is<>() / downcast<>() for RenderBlock objects
https://bugs.webkit.org/show_bug.cgi?id=137512
Reviewed by Darin Adler.
Use is<>() / downcast<>() for RenderBlock objects and clean up the
surrounding code.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::contractedRangeFromHandle):
2014-10-08 Ada Chan <adachan@apple.com>
Implement WKPageIsPlayingAudio().
https://bugs.webkit.org/show_bug.cgi?id=137048
Reviewed by Darin Adler.
* UIProcess/API/C/WKPage.cpp:
(WKPageIsPlayingAudio):
2014-10-08 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[EFL][CoordinatedGraphics] All EFL layout tests are broken since r174231
https://bugs.webkit.org/show_bug.cgi?id=137443
Reviewed by Zoltan Herczeg.
EFL layout test and MiniBrowser have broken since r174231. r174231 was to move PageOverlay implementation
from WebKit2 to WebCore with lazy initializing of PageOverlayController. It caused all EFL layout tests
crash and build break. To restore EFL layout test, this patch sets viewOverlayRootLayer through
attachViewOverlayGraphicsLayer() as mac port's one in r174231.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::attachViewOverlayGraphicsLayer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::updateRootLayers):
(WebKit::CoordinatedLayerTreeHost::setViewOverlayRootLayer):
(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2014-10-08 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r174335.
https://bugs.webkit.org/show_bug.cgi?id=137515
It broke EFL layout test totally (Requested by gyuyoung on
#webkit).
Reverted changeset:
"[EFL] Introduce EWebKit_Extension"
https://bugs.webkit.org/show_bug.cgi?id=134921
http://trac.webkit.org/changeset/174335
2014-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Make forwarding headers generation depend on source code
https://bugs.webkit.org/show_bug.cgi?id=137394
Reviewed by Philippe Normand.
Only run generate-forwarding-headers.pl when source code changes
and use a different target for the symlinks.
* PlatformGTK.cmake:
2014-10-07 Pascal Jacquemart <p.jacquemart@samsung.com>
[EFL] Enable custom URI schemes with CustomProtocols
https://bugs.webkit.org/show_bug.cgi?id=128177
Reviewed by Gyuyoung Kim.
Fixing ewk_context_url_scheme_register() ewebkit2 API
rely on r162449 - CustomProtocols implementation from Carlos Garcia Campos
* PlatformEfl.cmake:
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/ewk_url_scheme_request.cpp:
(EwkUrlSchemeRequest::EwkUrlSchemeRequest):
(EwkUrlSchemeRequest::finish):
* UIProcess/API/efl/ewk_url_scheme_request_private.h:
(EwkUrlSchemeRequest::create):
* UIProcess/API/efl/tests/test_ewk2_context.cpp:
(TEST_F):
* UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:
* UIProcess/efl/RequestManagerClientEfl.cpp:
(WebKit::RequestManagerClientEfl::RequestManagerClientEfl):
(WebKit::RequestManagerClientEfl::startLoading):
(WebKit::RequestManagerClientEfl::stopLoading):
(WebKit::RequestManagerClientEfl::registerURLSchemeHandler):
(WebKit::EwkUrlSchemeHandler::EwkUrlSchemeHandler): Deleted.
(WebKit::RequestManagerClientEfl::didReceiveURIRequest): Deleted.
* UIProcess/efl/RequestManagerClientEfl.h:
* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
* UIProcess/soup/WebContextSoup.cpp:
(WebKit::WebContext::platformInitializeNetworkProcess):
2014-10-07 Sungmann Cho <sungmann.cho@navercorp.com>
Remove WKPageCreateSnapshotOfVisibleContent API.
https://bugs.webkit.org/show_bug.cgi?id=66979
Reviewed by Darin Adler.
After the landing of the first patch of webkit.org/b/66979,
WKPageCreateSnapshotOfVisibleContent API has been neglected for years.
Currently, this is not used anywhere and does not break the nightlies.
So we can remove this.
* UIProcess/API/C/WKPage.cpp:
(WKPageCreateSnapshotOfVisibleContent): Deleted.
* UIProcess/API/C/WKPagePrivate.h:
2014-10-07 Sungmann Cho <sungmann.cho@navercorp.com>
Remove WKPageSetInvalidMessageFunction.
https://bugs.webkit.org/show_bug.cgi?id=137509
Reviewed by Benjamin Poulain.
According to the FIXME comment in WKPageSetInvalidMessageFunction,
we can remove this function when doing so won't break the nightlies.
Currently, this is not used anywhere and does not break the nightlies.
So we can remove this.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetInvalidMessageFunction): Deleted.
* UIProcess/API/C/WKPagePrivate.h:
2014-10-07 Christophe Dumez <cdumez@apple.com>
[WK2] Use is<>() / downcast<>() for DrawingArea subclasses
https://bugs.webkit.org/show_bug.cgi?id=137497
Reviewed by Benjamin Poulain.
Use is<>() / downcast<>() for DrawingArea subclasses.
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::synchronizeDynamicViewportUpdate):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2014-10-07 Simon Fraser <simon.fraser@apple.com>
Roll-over Changelogs.
* ChangeLog-2014-10-07: Copied from Source/WebKit2/ChangeLog.
== Rolled over to ChangeLog-2014-10-07 ==