blob: 6f1a92f79ce5918d512a715d09d25298ada4ced5 [file] [log] [blame]
2014-04-17 Daniel Bates <dabates@apple.com>
[iOS] Hook up screen.{availHeight, availWidth, height, width}
https://bugs.webkit.org/show_bug.cgi?id=131821
<rdar://problem/16413795>
Reviewed by Benjamin Poulain and Tim Horton.
Implement WebKit2-specific support infrastructure.
Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode): Modified to encode the available screen size
creation parameter.
(WebKit::WebPageCreationParameters::decode): Modified to decode the available screen size
creation parameter.
* Shared/WebPageCreationParameters.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters): Initialize the available screen size
parameter.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::screenSize): Renamed; formerly named viewportScreenSize.
(WebKit::WebPageProxy::availableScreenSize): Added.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::screenSize): Renamed; formerly named viewportScreenSize.
(WebKit::WebChromeClient::availableScreenSize): Added; turns around and calls WebPage::availableScreenSize().
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Hook up WebKit System Interface function WKGetAvailableScreenSize.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize available screen size instance variable.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::screenSize):
(WebKit::WebPage::availableScreenSize):
2014-04-17 Anders Carlsson <andersca@apple.com>
Remove unused API enums
https://bugs.webkit.org/show_bug.cgi?id=131836
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
(NS_ENUM):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):
2014-04-17 Brent Fulgham <bfulgham@apple.com>
Make RenderLayerBacking get the timingFunction of the correct animation.
https://bugs.webkit.org/show_bug.cgi?id=100632
Reviewed by Simon Fraser.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<GraphicsLayerAnimation>::decode): Update for new signatures for
FloatAnimationValue, TransformAnimationValue, etc.
2014-04-17 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] support replacements for misspelled words.
https://bugs.webkit.org/show_bug.cgi?id=131827
<rdar://problem/16319657>
Reviewed by Benjamin Poulain.
This is the first part of the work to add support for replacements.
It handles _promptForReplace in canPerformAction to decide
whether to show the Replace button in the menu and add the
implementation of the replace action.
* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView selectedText]):
(-[WKContentView replaceText:withText:]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView replace:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView selectWordForReplacement]): This is called
by UIKit when the user taps on a mispelled word to select it.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::replaceSelectedText):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::editorState):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture): Removed m_shouldReturnWordForSelection.
We now return always the word corresponding to the caret selection or
the selected text up to a maximum of 200 characters.
(WebKit::WebPage::extendSelection):
(WebKit::WebPage::replaceSelectedText):
2014-04-17 Tim Horton <timothy_horton@apple.com>
[iOS] REGRESSION (r166975): WKPDFView is broken
https://bugs.webkit.org/show_bug.cgi?id=131828
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:WebKit::]):
Bail from updating the scroll view parameters from the layer tree update
while it's being managed by a custom content view.
We'll get any changes again in the next commit after removing the custom
content view (and painting the new page) anyway, so this should be OK.
2014-04-17 Pratik Solanki <psolanki@apple.com>
_webProcessIdentifier should return 0 if the web process crashed
https://bugs.webkit.org/show_bug.cgi?id=131813
<rdar://problem/16650605>
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _hasWebProcess]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-04-17 Darin Adler <darin@apple.com>
Remove use of deprecatedDeleteAllValues in NPRemoteObjectMap::pluginDestroyed
https://bugs.webkit.org/show_bug.cgi?id=122496
Reviewed by Brent Fulgham.
* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::pluginDestroyed): Use new-style code and write the
deprecatedDeleteAllValues function out using a loop. Might be nice to return here
and use unique_ptr instead some day, but I tried that before and got it wrong, so
lets do that another time.
2014-04-17 Darin Adler <darin@apple.com>
Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
https://bugs.webkit.org/show_bug.cgi?id=131785
rdar://problem/16003108
Reviewed by Brady Eidson.
* Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.
2014-04-17 Dan Bernstein <mitz@apple.com>
WebKit2 part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
https://bugs.webkit.org/show_bug.cgi?id=131783
Reviewed by Tim Horton.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow): Set the isProcessingUserGesture field of
the NavigationActionData to the corresponding value in the NavigationAction.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto.
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto.
2014-04-16 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Fix the DidCommitLoad initial scrolling position
https://bugs.webkit.org/show_bug.cgi?id=131780
Reviewed by Jon Honeycutt.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
That code is older than _obscuredInsets and used the contentInsets as a workaround.
2014-04-16 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Fix annoying scrolling bugs
https://bugs.webkit.org/show_bug.cgi?id=131722
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:WebCore::]):
We are scrolling at the wrong position when we have the "small obscured insets".
2014-04-16 Gavin Barraclough <baraclough@apple.com>
On iOS keep network process running using a process assertion rather than a boost
https://bugs.webkit.org/show_bug.cgi?id=131779
Reviewed by Benjamin Poulain.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
- No need to leak a boost onto the NetworkProcess on iOS.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didFinishLaunching):
- Take a ProcessAssertion on the NetworkProcess.
* UIProcess/Shared/ChildProcessProxy.h:
- Added m_assertion.
* UIProcess/WebProcessProxy.h:
- Removed m_assertion.
* UIProcess/ios/ProcessAssertion.h: Added.
- Added - refactored from WebProcessProxy.h.
* UIProcess/ios/ProcessAssertion.mm: Added.
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::setState):
- Added - refactored from WebProcessProxyIOS.mm.
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::updateProcessState):
- Code refactored out to ProcessAssertion.mm.
* WebKit2.xcodeproj/project.pbxproj:
- Added files.
2014-04-16 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Improve the approximation of the scroll position of the dynamic viewport size updates
https://bugs.webkit.org/show_bug.cgi?id=131720
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:]):
The scrolling tree was forcing scroll at the wrong scale during the transition.
(-[WKWebView _setMinimumLayoutSizeOverride:]):
This was left out by accident. The WebProcess was getting the new layout size twice, making
WebPage::dynamicViewportSizeUpdate() very confused when the content size changes.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):
Add scrolling adjustment for the dynamic relayout case:
-Sticky top and bottom like the UIProcess.
-Keep the same relative position of the unobscured rect's center.
Also fix a bug in the horizontal and vertical adjustments: the code was using the exposed rect
instead of the unobscured rect, which made the adjustments off by the size of the obscured insets.
The type is changed from double to float since ARMv7 has a grudge against double.
2014-04-16 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Do not update the visible content rects when setting the same obscured insets multiple times
https://bugs.webkit.org/show_bug.cgi?id=131633
Reviewed by Darin Adler.
We should avoid computing the visible content rects when not needed.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setObscuredInsets:]):
2014-04-16 Zan Dobersek <zdobersek@igalia.com>
Make IPC::Arguments a variadic template
https://bugs.webkit.org/show_bug.cgi?id=131684
Reviewed by Darin Adler.
Make IPC::Arguments a variadic template that uses the template parameter pack to further
define the std::tuple ValueType and is used to define the std::tuple container of the
values passed into the container.
* Platform/IPC/Arguments.h:
(IPC::Arguments::Arguments):
(IPC::Arguments::encode):
(IPC::Arguments::decode):
(IPC::Arguments0::encode): Deleted.
(IPC::Arguments0::decode): Deleted.
(IPC::Arguments1::Arguments1): Deleted.
(IPC::Arguments1::encode): Deleted.
(IPC::Arguments1::decode): Deleted.
(IPC::Arguments2::Arguments2): Deleted.
(IPC::Arguments2::encode): Deleted.
(IPC::Arguments2::decode): Deleted.
(IPC::Arguments3::Arguments3): Deleted.
(IPC::Arguments3::encode): Deleted.
(IPC::Arguments3::decode): Deleted.
(IPC::Arguments4::Arguments4): Deleted.
(IPC::Arguments4::encode): Deleted.
(IPC::Arguments4::decode): Deleted.
(IPC::Arguments5::Arguments5): Deleted.
(IPC::Arguments5::encode): Deleted.
(IPC::Arguments5::decode): Deleted.
(IPC::Arguments6::Arguments6): Deleted.
(IPC::Arguments6::encode): Deleted.
(IPC::Arguments6::decode): Deleted.
(IPC::Arguments7::Arguments7): Deleted.
(IPC::Arguments7::encode): Deleted.
(IPC::Arguments7::decode): Deleted.
(IPC::Arguments8::Arguments8): Deleted.
(IPC::Arguments8::encode): Deleted.
(IPC::Arguments8::decode): Deleted.
(IPC::Arguments10::Arguments10): Deleted.
(IPC::Arguments10::encode): Deleted.
(IPC::Arguments10::decode): Deleted.
* Scripts/webkit2/LegacyMessages-expected.h:
* Scripts/webkit2/Messages-expected.h:
* Scripts/webkit2/messages.py: Clean up the code a bit.
(reply_parameter_type):
(arguments_type):
(reply_type):
(decode_type):
(arguments_type_old): Deleted.
(base_class): Deleted.
(delayed_reply_type): Deleted.
2014-04-16 Tim Horton <timothy_horton@apple.com>
Deduplicate LayerTreeContext
https://bugs.webkit.org/show_bug.cgi?id=131773
Reviewed by Simon Fraser.
There are three identical implementations, one for each platform, for no reason.
* CMakeLists.txt:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/LayerTreeContext.cpp: Renamed from Source/WebKit2/Shared/mac/LayerTreeContextMac.mm.
(WebKit::LayerTreeContext::LayerTreeContext):
(WebKit::LayerTreeContext::~LayerTreeContext):
(WebKit::LayerTreeContext::encode):
(WebKit::LayerTreeContext::decode):
(WebKit::LayerTreeContext::isEmpty):
(WebKit::operator==):
* Shared/LayerTreeContext.h:
(WebKit::operator!=): Deleted.
* Shared/efl/LayerTreeContextEfl.cpp: Removed.
* Shared/gtk/LayerTreeContextGtk.cpp: Removed.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize):
2014-04-16 Tim Horton <timothy_horton@apple.com>
Don't build LayerTreeHost on Mac (and clean it up)
https://bugs.webkit.org/show_bug.cgi?id=131769
Reviewed by Simon Fraser.
* WebKit2.xcodeproj/project.pbxproj:
Don't include it in the project.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::updatePreferences):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updatePreferences):
* WebProcess/WebPage/LayerTreeHost.h:
(WebKit::LayerTreeHost::setLayerHostingMode): Deleted.
(WebKit::LayerTreeHost::supportsAcceleratedCompositing): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/ios/WebPageIOS.mm:
Get rid of LayerTreeHost::supportsAcceleratedCompositing, which always returns true everywhere.
Remove some LayerTreeHost.h includes.
Remove LayerTreeHost::setLayerHostingMode, which is PLATFORM(COCOA) and not needed.
2014-04-16 Simon Fraser <simon.fraser@apple.com>
Failing to decode a layer tree commit message resulted in silent and mysterious failure
https://bugs.webkit.org/show_bug.cgi?id=131766
<rdar://problem/16520894>
Reviewed by Sam Weinig.
If the message decode failed, we should have already marked the message as invalid.
Failing to do so indicates in a decode code coding error.
* Platform/IPC/HandleMessage.h:
(IPC::handleMessage):
(IPC::handleMessageVariadic):
(IPC::handleMessageDelayed):
2014-04-16 Tim Horton <timothy_horton@apple.com>
Minor include sanity in WebPage.h
https://bugs.webkit.org/show_bug.cgi?id=131752
Reviewed by Simon Fraser.
* WebProcess/WebPage/WebPage.h:
Remove a bunch of unnecessary includes.
Un-indent some stuff.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebPage/FindController.cpp:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/mac/WebPageMac.mm:
Add back more specific includes, into implementation files.
* WebProcess/WebPage/WebUndoStep.cpp:
(WebKit::WebUndoStep::~WebUndoStep):
* WebProcess/WebPage/WebUndoStep.h:
Add an out-of-line destructor.
2014-04-16 Gavin Barraclough <baraclough@apple.com>
REGRESSION: PCE.js is 20x slower in WebKit2 because timers are throttled
https://bugs.webkit.org/show_bug.cgi?id=131189
Unreviewed rollout of r166754
This change is no longer necessary.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
2014-04-16 Alexey Proskuryakov <ap@apple.com>
Updating tests after bug 131721, [GTK] Fix unused parameter warnings.
* Scripts/webkit2/LegacyMessageReceiver-expected.cpp:
(WebKit::WebPage::didReceiveWebPageMessage):
(WebKit::WebPage::didReceiveSyncWebPageMessage):
* Scripts/webkit2/MessageReceiver-expected.cpp:
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):
2014-04-16 Brendan Long <b.long@cablelabs.com>
[GTK] Fix unused parameter warnings
https://bugs.webkit.org/show_bug.cgi?id=131721
Reviewed by Darin Adler.
* Scripts/webkit2/messages.py:
(generate_message_handler): Add UNUSED_PARAM() for a couple parameters which aren't always used.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<LinearTimingFunction>::decode): Remove unused parameters.
* WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
(API::InjectedBundle::FormClient::textDidChangeInTextField): Same.
(API::InjectedBundle::FormClient::willSubmitForm): Same.
(API::InjectedBundle::FormClient::willSendSubmitEvent): Same.
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveSyncMessage): Same.
2014-04-16 Tim Horton <timothy_horton@apple.com>
Accidentally included some style-checker-testing changes in the last commit.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::attemptToUnlockPDF):
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):
2014-04-16 Tim Horton <timothy_horton@apple.com>
Fix some style checker complaints in PDFPlugin
https://bugs.webkit.org/show_bug.cgi?id=131706
Reviewed by Darin Adler.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:forParameter:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeNames]):
(WebKit::PDFPlugin::attemptToUnlockPDF):
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):
(WebKit::PDFPlugin::isEditingCommandEnabled):
(WebKit::PDFPlugin::nextMatchForString):
(WebKit::PDFPlugin::handleWheelEvent):
(WebKit::PDFPlugin::liveData):
2014-04-15 Dan Bernstein <mitz@apple.com>
[Cocoa] Add a form delegate method corresponding to willSubmitForm
https://bugs.webkit.org/show_bug.cgi?id=131718
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setFormDelegate:]): Changed to define and create a FormClient (which derives
from API::FormClient and messages a delegate), and set it as the form client.
* UIProcess/API/Cocoa/_WKFormDelegate.h: Declared new delegate method.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added a
variant of willSubmitForm that returs a user object to pass to the delegate in the UI
process, giving it a temporary name with “new”.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Changed willSubmitForm()
to check for the new bundle delegate method first and encode the user object as user data.
Moved the encoding of an NSObject <NSSecureCoding> as user data into a helper function.
2014-04-15 Hyowon Kim <hw1008.kim@samsung.com>
Make page overlay functionality working on coordinated graphics.
https://bugs.webkit.org/show_bug.cgi?id=131425
Reviewed by Darin Adler.
Page overlay functionality did not work on coordinated graphics since r166975.
This patch removes deprecated code related to the PageOverlay GraphicsLayer management.
and makes CoordinatedLayerTreeHost use PageOverlayController.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged):
(WebKit::CoordinatedDrawingArea::didInstallPageOverlay): Deleted.
(WebKit::CoordinatedDrawingArea::didUninstallPageOverlay): Deleted.
(WebKit::CoordinatedDrawingArea::setPageOverlayNeedsDisplay): Deleted.
(WebKit::CoordinatedDrawingArea::setPageOverlayOpacity): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::CoordinatedLayerTreeHost::didInstallPageOverlay): Deleted.
(WebKit::CoordinatedLayerTreeHost::didUninstallPageOverlay): Deleted.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayNeedsDisplay): Deleted.
(WebKit::CoordinatedLayerTreeHost::setPageOverlayOpacity): Deleted.
(WebKit::CoordinatedLayerTreeHost::createPageOverlayLayer): Deleted.
(WebKit::CoordinatedLayerTreeHost::destroyPageOverlayLayer): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/LayerTreeHost.h:
(WebKit::LayerTreeHost::didInstallPageOverlay):
(WebKit::LayerTreeHost::didUninstallPageOverlay):
(WebKit::LayerTreeHost::setPageOverlayNeedsDisplay):
2014-04-15 Dan Bernstein <mitz@apple.com>
Introduce API::FormClient
https://bugs.webkit.org/show_bug.cgi?id=131714
Reviewed by Tim Horton.
* UIProcess/API/APIFormClient.h: Added.
(API::FormClient::~FormClient):
(API::FormClient::willSubmitForm):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageFormClient): Changed to create a WebFormClient and call
WebPageProxy::setFormClient.
* UIProcess/WebFormClient.cpp:
(WebKit::WebFormClient::WebFormClient): Added a constructor from WKPageFormClientBase.
* UIProcess/WebFormClient.h: Added inheritance from API::FormClient, marked overrides as
such.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Initialize m_formClient member.
(WebKit::WebPageProxy::setFormClient): Added. Updates m_formClient.
(WebKit::WebPageProxy::close): Updated code to clear m_formClient.
(WebKit::WebPageProxy::willSubmitForm): Updated for type change.
(WebKit::WebPageProxy::initializeFormClient): Deleted.
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj: Added reference to new file.
2014-04-15 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Pages often blank on first load if page loaded by typing the URL
https://bugs.webkit.org/show_bug.cgi?id=131665
Reviewed by Tim Horton.
The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
was triggering a compositing layer flush when called with a null rootLayer, which happens
for pages going into the page cache. This would trigger a layer flush that would clobber
the root layer for the visible page, resulting in missing content.
Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
was being added to (and then removed from) every single compositing layers.
Fix both these by changing to a pull model, where RenderLayerCompositor requests
the overlay layer via ChromeClient, and gets it at the end of every flush,
adding to the children of the root layer.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::documentOverlayLayerForFrame):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
2014-04-15 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL][WK2] Pass Mouse movement data to WebMouseEvent
https://bugs.webkit.org/show_bug.cgi?id=131663
Reviewed by Gyuyoung Kim.
Currently mouse movement data are not passed to WebMouseEvent. Instead, they are set to 0 as default.
EFL port needs to send the deltaX and deltaY for PointerLock API which will be implemented later.
* Shared/efl/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebMouseEvent):
2014-04-15 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r167298.
https://bugs.webkit.org/show_bug.cgi?id=131670
Broke CSS filters (17 test crashes) (Requested by ap on
#webkit).
Reverted changeset:
"[iOS WK2] Pages often blank on first load if page loaded by
typing the URL"
https://bugs.webkit.org/show_bug.cgi?id=131665
http://trac.webkit.org/changeset/167298
2014-04-14 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Pages often blank on first load if page loaded by typing the URL
https://bugs.webkit.org/show_bug.cgi?id=131665
Reviewed by Tim Horton.
The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
was triggering a compositing layer flush when called with a null rootLayer, which happens
for pages going into the page cache. This would trigger a layer flush that would clobber
the root layer for the visible page, resulting in missing content.
Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
was being added to (and then removed from) every single compositing layers.
Fix both these by changing to a pull model, where RenderLayerCompositor requests
the overlay layer via ChromeClient, and gets it at the end of every flush,
adding to the children of the root layer.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::documentOverlayLayerForFrame):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
2014-04-14 Tim Horton <timothy_horton@apple.com>
Fix the 32-bit build.
* UIProcess/mac/ViewGestureControllerMac.mm:
2014-04-14 Simon Fraser <simon.fraser@apple.com>
REGRESSION (WebKit2): Programmatic scrolls in overflow-scrolling:touch don't work
https://bugs.webkit.org/show_bug.cgi?id=131649
Reviewed by Tim Horton.
Update the UIScrollView's contentOffset when we're told that the scroll position
changed.
Also refactor slightly to have a single exception-protected block.
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
2014-04-14 Tim Horton <timothy_horton@apple.com>
Fix the 32-bit build.
* UIProcess/mac/ViewGestureControllerMac.mm:
2014-04-14 Tim Horton <timothy_horton@apple.com>
Sometimes-crash under handleSwipeGesture after closing a window or quitting
https://bugs.webkit.org/show_bug.cgi?id=131648
<rdar://problem/15966106>
Reviewed by Simon Fraser.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::~ViewGestureController):
(WebKit::ViewGestureController::trackSwipeGesture):
Keep a Objective C object with a single boolean property, isCancelled, on
the ViewGestureController, and also retained by the swipe-tracking block.
When the ViewGestureController is destroyed, we set isCancelled to YES,
and the next time the block is invoked, we will cancel the swipe without
touching the destroyed ViewGestureController.
(WebKit::ViewGestureController::handleSwipeGesture):
Don't try to handle a swipe gesture if the drawing area is missing.
(WebKit::ViewGestureController::endSwipeGesture):
Clear the swipe cancellation tracker when the gesture completes.
2014-04-14 Enrica Casucci <enrica@apple.com>
REGRESSION(r166027) Menu is shown and immediately hidden after doubletap gesture.
https://bugs.webkit.org/show_bug.cgi?id=131646
<rdar://problem/16614374>
Reviewed by Benjamin Poulain.
This is a problem with every gesture that changes the selection
We don't need to delay updating the selection if the selection is
being changed with a gesture.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
(-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
(-[WKContentView _selectionChanged]):
2014-04-14 Dan Bernstein <mitz@apple.com>
Let the bundle form client know whether a change in a text field was initiated by user typing
https://bugs.webkit.org/show_bug.cgi?id=131643
Reviewed by Sam Weinig.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added
initiatedByUserTyping parameter to the delegate method.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Updated overload of
textDidChangeInTextField to take the initiatedByUserTyping parameter and pass it along to
the delegate.
* WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
(API::InjectedBundle::FormClient::textDidChangeInTextField): Added initiatedByUserTyping
parameter.
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::textDidChangeInTextField): Maintained the existing
behavior of not calling the C SPI client if the change was not initiated by user typing.
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.h: Updated for added parameter.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::textDidChangeInTextField): Changed to call the bundle client
function unconditionally, but pass along whether the change was initiated by user typing.
2014-04-14 Dan Bernstein <mitz@apple.com>
[Cocoa] Add a WKWebProcessPlugInFormDelegate method corresponding to willSendSubmitEvent
https://bugs.webkit.org/show_bug.cgi?id=131639
Reviewed by Tim Horton.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared
new delegate method.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added an override
of API::InjectedBundle::FormClient::willSendSubmitEvent which calls the new delegate
method.
2014-04-14 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Change the SPI used when starting the rotation animation
https://bugs.webkit.org/show_bug.cgi?id=131638
Reviewed by Tim Horton.
Having an update block where all the properties are changed is more convenient for Safari.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-04-14 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Hash table assertion closing a tab
https://bugs.webkit.org/show_bug.cgi?id=131640
Reviewed by Tim Horton.
Have RemoteLayerTreeContext keep track of all PlatformCALayerRemotes,
and clear their context pointer when it is being destroyed to avoid
calling into a deleted object later.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::~PlatformCALayerRemote):
(WebKit::PlatformCALayerRemote::addAnimationForKey):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
(WebKit::PlatformCALayerRemote::clearContext):
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::~RemoteLayerTreeContext):
(WebKit::RemoteLayerTreeContext::layerWasCreated):
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
2014-04-14 Tim Horton <timothy_horton@apple.com>
Allow dynamic changes of WKThumbnailView snapshot scale
https://bugs.webkit.org/show_bug.cgi?id=131628
<rdar://problem/16584156>
Reviewed by Beth Dakin.
* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _requestSnapshotIfNeeded]):
Don't bail from requesting a snapshot just because we already had one; we want to resnapshot.
Keep track of when we bail from requesting a snapshot because we have one in-flight, so we can request it later.
(-[_WKThumbnailView _didTakeSnapshot:]):
Apply the scale to the bitmap size (whoops!).
Make CA always resize the content to fill the thumbnail view's layer, respecting aspect ratio.
Re-snapshot if we previously deferred a snapshot.
(-[_WKThumbnailView setScale:]):
If we get a scale change, request a new snapshot.
(-[_WKThumbnailView setUsesSnapshot:]):
Never apply thumbnail scale to the page if we're using snapshots. It's unnecessary,
because scale will be applied simply when painting the software snapshot.
Apply the thumbnail scale if we're going from usesSnapshot -> !usesSnapshot.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::snapshotAtSize):
Snapshots should use the greater of the two scales, so as to never leave a portion of the snapshot unpainted.
2014-04-14 Tim Horton <timothy_horton@apple.com>
REGRESSION (WebKit2 View Gestures): Double-tap doesn't work properly when there's no element underneath the cursor
https://bugs.webkit.org/show_bug.cgi?id=131629
<rdar://problem/16192821>
Reviewed by Dan Bernstein.
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
If there's nothing under the cursor, zoom towards the cursor instead of towards 0,0.
2014-04-14 Simon Fraser <simon.fraser@apple.com>
Run filter animations in the UI process with UI-side compositing
https://bugs.webkit.org/show_bug.cgi?id=131199
<rdar://problem/16479487>
Reviewed by Sam Weinig.
* Shared/WebCoreArgumentCoders.cpp: Removed lots of WebCore::
(IPC::ArgumentCoder<SelectionRect>::decode):
(IPC::ArgumentCoder<PasteboardWebContent>::encode):
(IPC::ArgumentCoder<PasteboardWebContent>::decode):
(IPC::ArgumentCoder<PasteboardImage>::encode):
(IPC::ArgumentCoder<PasteboardImage>::decode):
(IPC::ArgumentCoder<URL>::decode):
(IPC::ArgumentCoder<UserStyleSheet>::encode):
(IPC::ArgumentCoder<UserStyleSheet>::decode):
(IPC::ArgumentCoder<UserScript>::encode):
(IPC::ArgumentCoder<UserScript>::decode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::encode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::decode):
(IPC::ArgumentCoder<FixedPositionViewportConstraints>::encode):
(IPC::ArgumentCoder<FixedPositionViewportConstraints>::decode):
(IPC::ArgumentCoder<StickyPositionViewportConstraints>::encode):
(IPC::ArgumentCoder<StickyPositionViewportConstraints>::decode):
(IPC::ArgumentCoder<FilterOperation>::encode):
(IPC::decodeFilterOperation):
(IPC::ArgumentCoder<FilterOperations>::encode):
(IPC::ArgumentCoder<WebCore::UserStyleSheet>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::UserStyleSheet>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::UserScript>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::UserScript>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::decode): Deleted.
(IPC::encodeFilterOperation): Deleted.
Add encoding/decoding support for FilterOperation.
decodeFilterOperation() has to be a bare function because of the RefPtr
out parameter.
REFERENCE filters should never be encoded, since they have CachedSVGDocumentReferences.
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
Add logging for filter animations to the RemoteLayerTree log output.
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
* WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
(WebKit::GraphicsLayerCARemote::addAnimation): Deleted. We can run
filter animations now.
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
KeyValues have a RefPtr<WebCore::FilterOperation> now (which can't be part of
the union because we need its constructor to get called).
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::KeyframeValue::encode): Encode the filter.
(WebKit::PlatformCAAnimationRemote::KeyframeValue::decode): Decode the filter.
(WebKit::PlatformCAAnimationRemote::setFromValue): Implement.
(WebKit::PlatformCAAnimationRemote::setToValue): Implement.
(WebKit::PlatformCAAnimationRemote::setValues): Implement.
(WebKit::animationValueFromKeyframeValue): Handle filters.
2014-04-14 Simon Fraser <simon.fraser@apple.com>
Fix the build.
* UIProcess/mac/PageClientImpl.h:
2014-04-14 Simon Fraser <simon.fraser@apple.com>
[WK2 iOS] Scrolling to anchor links is broken
https://bugs.webkit.org/show_bug.cgi?id=131618
<rdar://problem/16599144>
Reviewed by Tim Horton.
The RemoteScrollingTree implements scrollingTreeNodeRequestsScroll
to get informed about requested scroll position updates, and passes
them along via the RemoteScrollingCoordinatorProxy, WebPageProxy and PageClient
to the WKWebView, which performs a scroll.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollToContentOffset:WebCore::]): Scroll to content offset,
taking page scale and insets into account.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::requestScroll):
* UIProcess/CoordinatedGraphics/WebView.h:
* UIProcess/PageClient.h:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
Pass scrolls along to the WebPageProxy for the root node. We will also need
to handle programmatic scrolls for overflow soon.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeRequestsScroll):
* UIProcess/Scrolling/RemoteScrollingTree.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestScroll):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::canScrollView):
(WebKit::PageClientImpl::requestScroll):
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::requestScroll):
2014-04-12 Antti Koivisto <antti@apple.com>
Keep secondary tile grid for zoomed-out scale
https://bugs.webkit.org/show_bug.cgi?id=131586
Reviewed by Darin Adler.
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
(WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
(WebKit::PlatformCALayerRemoteTiledBacking::customSublayers):
Always request new sublayer list from tile controller.
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
2014-04-14 Tim Horton <timothy_horton@apple.com>
Make WK(Web)View magnification setters actually use view-relative positions
https://bugs.webkit.org/show_bug.cgi?id=131611
<rdar://problem/15965239>
Reviewed by Darin Adler.
* UIProcess/API/mac/WKView.mm:
(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
Use scalePageInViewCoordinates instead.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::scalePageInViewCoordinates):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scalePageInViewCoordinates):
(WebKit::WebPage::pageScaleFactor):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Add scalePageInViewCoordinates, which turns the scale centerpoint within the view
into what scalePage expects: a post-scale scroll offset.
2014-04-14 Tim Horton <timothy_horton@apple.com>
Support setting a background color on page overlays
https://bugs.webkit.org/show_bug.cgi?id=131600
Reviewed by Darin Adler.
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::PageOverlay):
(WebKit::PageOverlay::bounds):
(WebKit::PageOverlay::startFadeInAnimation):
(WebKit::PageOverlay::startFadeOutAnimation):
(WebKit::PageOverlay::startFadeAnimation):
(WebKit::PageOverlay::fadeAnimationTimerFired):
Minor style adjustments.
Use more references everywhere.
(WebKit::PageOverlay::setBackgroundColor):
(WebKit::PageOverlay::setNeedsDisplay):
* WebProcess/WebPage/PageOverlay.h:
(WebKit::PageOverlay::backgroundColor):
Keep track of our background color, and push it down to the page overlay controller if we have one.
* WebProcess/WebPage/PageOverlayController.cpp:
(WebKit::updateOverlayGeometry):
(WebKit::PageOverlayController::clearPageOverlay):
Page overlays will always have the right size, and just use drawsContents to determine
whether or not they should tile/have backing store/etc.
(WebKit::PageOverlayController::installPageOverlay):
(WebKit::PageOverlayController::didChangeOverlayBackgroundColor):
Set the background color of the layer.
* WebProcess/WebPage/PageOverlayController.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
References!
2014-04-13 Andy Estes <aestes@apple.com>
[QuickLook] Move file system-related code into WebKit
https://bugs.webkit.org/show_bug.cgi?id=131597
Reviewed by Dan Bernstein.
* WebProcess/Network/WebResourceLoader.h: Made m_quickLookHandle a unique_ptr.
* WebProcess/ios/WebResourceLoaderIOS.mm:
(WebKit::WebResourceLoader::setUpQuickLookHandleIfNeeded):
2014-04-13 Andy Estes <aestes@apple.com>
REGRESSION (r167164): -[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:] _block_invoke can access a deallocated completionHandler
https://bugs.webkit.org/show_bug.cgi?id=131595
Reviewed by Dan Bernstein.
Make a copy of completionHandler and release it after we're done with it.
* Shared/mac/CookieStorageShim.mm:
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
2014-04-13 Pratik Solanki <psolanki@apple.com>
Don't use ImportanceAssertion on iOS
https://bugs.webkit.org/show_bug.cgi?id=131481
<rdar://problem/16575830>
Reviewed by Darin Adler.
We have other API to mark processes as being in use on iOS. No need to use ImportanceAssertion.
* Platform/IPC/MessageDecoder.cpp:
* Platform/IPC/MessageDecoder.h:
* Platform/IPC/mac/ConnectionMac.cpp:
(IPC::Connection::receiveSourceEventHandler):
* Platform/IPC/mac/ImportanceAssertion.h:
2014-04-13 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r167168 and r167194.
https://bugs.webkit.org/show_bug.cgi?id=131589
Caused massive ASSERTION failures on the GTK Debug bot
(Requested by philn on #webkit).
Reverted changesets:
"[GTK] Add HighDPI support for non-accelerated compositing
contents"
https://bugs.webkit.org/show_bug.cgi?id=131562
http://trac.webkit.org/changeset/167168
"Unreviewed. Fix GTK+ build with recent cairo and GTK+ after
r167168."
http://trac.webkit.org/changeset/167194
2014-04-13 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build with recent cairo and GTK+ after r167168.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCreateWebPage):
2014-04-12 Andy Estes <aestes@apple.com>
[iOS] Move QuickLookHandle from ResourceLoader to WebResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=131580
Reviewed by Darin Adler.
There's no need to bloat WebKit1's ResourceLoader with a pointer that
only WebKit2's WebResourceLoader cares about.
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didFailResourceLoad):
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/ios/WebResourceLoaderIOS.mm:
(WebKit::WebResourceLoader::setUpQuickLookHandleIfNeeded):
2014-04-11 Alexey Proskuryakov <ap@apple.com>
[Mac] Crashes when copying or pasting huge images
https://bugs.webkit.org/show_bug.cgi?id=131576
<rdar://problem/12131833>
<rdar://problem/14427398>
Reviewed by Darin Adler.
Added a few null checks for SharedMemory::create() return value in pasteboard code.
Error handling feels a bit sketchy, but
- I'm not sure what it should look like ideally;
- it matches the kind of error handling we already have in these functions;
- it appears to work reasonably well in practice. We get empty content, which
is not nice, but not particularly problematic either. When copying an animated GIF,
we also get the GIF in RTFD flavor, so even pasting into NSTextViews works!
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::createFromVMBuffer):
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::getPasteboardBufferForType):
(WebKit::WebContext::readBufferFromPasteboard):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setBufferForType):
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::WebDragClient::declareAndWriteDragImage):
Also renamed some variables to prevent name collisions with with nested scope.
2014-04-11 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix on the EFL port after r167152
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::bounds):
2014-04-11 Hyowon Kim <hw1008.kim@samsung.com>
[WK2] WebProcess crashes, when closing window after opening page by means of context menu
https://bugs.webkit.org/show_bug.cgi?id=131439
Reviewed by Tim Horton.
CoordinatedGraphicsLayer calls notifyFlushRequired() through its client when destroyed.
When PageOverlayController::notifyFlushRequired() is called, the DrawingArea could be null
because it's destoryed in WebPage::close().
* WebProcess/WebPage/PageOverlayController.cpp:
(WebKit::PageOverlayController::notifyFlushRequired): Add null check of m_webPage->drawingArea().
2014-04-11 Tim Horton <timothy_horton@apple.com>
Lots of compositing test failures after r167152
https://bugs.webkit.org/show_bug.cgi?id=131574
Reviewed by Simon Fraser.
* WebProcess/WebPage/PageOverlayController.h:
Skip page overlay layers in layer tree dumps, for consistency between platforms.
2014-04-11 Beth Dakin <bdakin@apple.com>
Need WK2 API to disable rubber-banding
https://bugs.webkit.org/show_bug.cgi?id=131567
Reviewed by Simon Fraser.
New API allows the client to enable/disable horizontal or vertical rubber-banding.
By default, rubber-banding is enabled.
* UIProcess/API/C/WKPage.cpp:
(WKPageVerticalRubberBandingIsEnabled):
(WKPageSetEnableVerticalRubberBanding):
(WKPageHorizontalRubberBandingIsEnabled):
(WKPageSetEnableHorizontalRubberBanding):
* UIProcess/API/C/WKPage.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setEnableVerticalRubberBanding):
(WebKit::WebPageProxy::verticalRubberBandingIsEnabled):
(WebKit::WebPageProxy::setEnableHorizontalRubberBanding):
(WebKit::WebPageProxy::horizontalRubberBandingIsEnabled):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setEnableVerticalRubberBanding):
(WebKit::WebPage::setEnableHorizontalRubberBanding):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2014-04-11 Tim Horton <timothy_horton@apple.com>
Fix the Mac build.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
2014-04-11 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Find-in-page indicator
https://bugs.webkit.org/show_bug.cgi?id=131510
<rdar://problem/16547777>
Reviewed by Simon Fraser and Enrica Casucci.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll):
WebKit2 will clear the selection if we reveal it while not enabling selection painting.
So, avoid revealing it.
(WebKit::FindController::findString):
(WebKit::FindController::hideFindIndicator):
(WebKit::FindController::willFindString):
(WebKit::FindController::didFailToFindString):
(WebKit::FindController::didHideFindIndicator):
#if out the cross-platform find indicator code on iOS; it will be replaced
by the code in FindControllerIOS.
* WebProcess/WebPage/FindController.h:
* WebProcess/WebPage/ios/FindControllerIOS.mm: Added.
(highlightColor):
(WebKit::FindIndicatorOverlayClientIOS::drawRect):
Paint the selection (with black text forced on), and the yellow rounded rect
into the indicator page overlay.
(WebKit::FindController::updateFindIndicator):
Create or update a small document-relative page overlay in the selection rect.
(WebKit::FindController::hideFindIndicator):
(WebKit::FindController::willFindString):
(WebKit::FindController::didFailToFindString):
(WebKit::FindController::didHideFindIndicator):
Add willFindString, didFailToFindString, and didHideFindIndicator functions.
They do nothing, except on iOS where they are used to prevent selection change
messages from being dispatched while using find-in-page, and to force
WebCore to compute a selection rect (via updateAppearance) despite the selection not being painted.
* WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:
(WebKit::FindIndicatorOverlayClientIOS::setFrame):
2014-04-11 Owen Taylor <otaylor@redhat.com>
[GTK] Add HighDPI support for non-accelerated compositing contents
https://bugs.webkit.org/show_bug.cgi?id=131562
Reviewed by Martin Robinson.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(scaleFactorChanged): Added this callback to pass scale changes to the page proxy.
(webkitWebViewBaseCreateWebPage): Attach the callback to the notify signal.
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::createBackingStoreForGTK): Pass the scale factor to the WebCore backing store.
(WebKit::BackingStore::incorporateUpdate): Ditto.
2014-04-10 Jer Noble <jer.noble@apple.com>
[WK2] Dispatch to main thread's run loop to handle cookie requests.
https://bugs.webkit.org/show_bug.cgi?id=131524
Reviewed by Brady Eidson.
When using synchronous network APIs from the main thread (e.g., -[NSImage
initWithContentsOfURL:]) our cookie shim would attempt to dispath_async
to the main thread to handle the cookie request, and block against the original
request. CFNetwork is still servicing the run loop however, so rather than
dispatch_async to the main queue, use the RunLoop to dispatch to the main thread.
* Shared/mac/CookieStorageShim.mm:
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
2014-04-11 Tim Horton <timothy_horton@apple.com>
Make the stylebot happier with r167154.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
2014-04-11 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Expose a simplified zoom-to-rect to the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=131563
Reviewed by Simon Fraser.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::zoomToRect):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::zoomToRect):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::zoomToRect):
Add a simple message that calls WKContentView's zoom-to-rect code given just a rect and min/max scale.
We will use the center of the rect as the zoom origin, and will try to show the whole rect.
2014-04-10 Jer Noble <jer.noble@apple.com>
[iOS][WK2] Videos should animate into and out of fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=131497
Reviewed by Simon Fraser.
Pass a starting rect for the enterFullscreen animation and an ending rect
for the exitFullscreen animation.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreenWithID): Pass initialFrame.
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::screenRectOfContents): Casts node -> element and returns its screenRect().
(WebKit::WebVideoFullscreenManager::enterFullscreenForNode): Pass initialFrame.
(WebKit::WebVideoFullscreenManager::exitFullscreenForNode): Pass finalFrame.
2014-04-11 Tim Horton <timothy_horton@apple.com>
Support document-relative and custom-frame page overlays
https://bugs.webkit.org/show_bug.cgi?id=131560
<rdar://problem/16595556>
Reviewed by Simon Fraser.
Add "document-relative" overlays, which attach to (and scroll with) the document,
and can be given a frame rect within the document to avoid overallocation of backing store.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::didChangeScrollOffset):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mainFrame):
(WebKit::WebPage::mainFrameView):
(WebKit::WebPage::didChangeScrollOffsetForFrame):
* WebProcess/WebPage/WebPage.h:
Let the PageOverlayController know *which* frame scrolled, instead of "any frame".
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll):
Factor out shared code.
(WebKit::FindController::willMoveToWebPage):
(WebKit::FindController::drawRect):
We can use clearRect() instead of a transparency layer and fillRect().
I've looked through all the other overlay clients I know of and none of them
depend on having a transparency layer at the overlay level.
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::create):
(WebKit::PageOverlay::PageOverlay):
(WebKit::PageOverlay::bounds):
(WebKit::PageOverlay::frame):
(WebKit::PageOverlay::setFrame):
(WebKit::PageOverlay::drawRect):
Add OverlayType, which allows creation of Document or View relative overlays.
All overlays up to this point are View relative, so we default to that.
Document-relative overlays scroll with the page instead of repainting as
the page scrolls. They can also be given an explicit frame, allowing them
to be smaller than the entire document.
* WebProcess/WebPage/PageOverlay.h:
(WebKit::PageOverlay::overlayType):
(WebKit::PageOverlay::webPage):
(WebKit::PageOverlay::client): Deleted.
* WebProcess/WebPage/PageOverlayController.cpp:
(WebKit::PageOverlayController::initialize):
(WebKit::PageOverlayController::installPageOverlay):
(WebKit::PageOverlayController::uninstallPageOverlay):
(WebKit::PageOverlayController::updateForceSynchronousScrollLayerPositionUpdates):
(WebKit::updateOverlayGeometry):
(WebKit::PageOverlayController::setPageOverlayNeedsDisplay):
(WebKit::PageOverlayController::didChangeViewSize):
(WebKit::PageOverlayController::didChangeDocumentSize):
(WebKit::PageOverlayController::didChangeDeviceScaleFactor):
(WebKit::PageOverlayController::didScrollFrame):
(WebKit::PageOverlayController::flushPageOverlayLayers):
(WebKit::PageOverlayController::didChangeOverlayFrame):
Keep two overlay root layers - one for view-relative
and one for document-relative overlays.
Don't force synchronous scrolling if we only have document-relative overlays.
Update the overlay's position as well as its size whenever necessary.
Update document-relative overlay geometry when the document size changes.
Only explicitly flush view-relative overlays; document-relative ones
are plugged into the WebCore layer tree and flushed along with the page.
* WebProcess/WebPage/PageOverlayController.h:
(WebKit::PageOverlayController::documentOverlayRootLayer):
(WebKit::PageOverlayController::viewOverlayRootLayer):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
(WebKit::RemoteLayerTreeDrawingArea::mainFrameContentSizeChanged):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
Let the PageOverlay controller know when the document size changes.
When we set up compositing, push the document overlay root layer
down into WebCore.
2014-04-11 Pratik Solanki <psolanki@apple.com>
[iOS WebKit2]: Share NSURLCache directory for webkit processes
https://bugs.webkit.org/show_bug.cgi?id=131513
<rdar://problem/16420859>
Reviewed by Alexey Proskuryakov.
Use iOS specific NSURLCache API to share the cache directory used by the networking process,
web process and Safari.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-04-11 Alexey Proskuryakov <ap@apple.com>
[Mac] Add IconServices to WebProcess sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=131558
<rdar://problem/16552397>
Reviewed by Brady Eidson.
* WebProcess/com.apple.WebProcess.sb.in:
2014-04-11 Antti Koivisto <antti@apple.com>
Pipe initial scale factor to TileController
https://bugs.webkit.org/show_bug.cgi?id=131521
Reviewed by Tim Horton.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportConfigurationChanged):
2014-04-10 Chris Fleizach <cfleizach@apple.com>
AX: WebProcess at com.apple.WebCore: WebCore::AXObjectCache::rootObject + 18
https://bugs.webkit.org/show_bug.cgi?id=131522
Reviewed by Anders Carlsson.
Protect against documents that have had their render tree destroyed, and no longer return a valid cache.
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
2014-04-11 Brent Fulgham <bfulgham@apple.com>
[Mac] Prevent crash when exiting fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=131528
Reviewed by Jer Noble.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
Clean up the _scaleAnimation controller, not just the _fadeAnimation controller.
(-[WKFullScreenWindowController close]): If we are doing an immediate
close of the view, we need to stop animations so we avoid any
final timer events from interacting with invalid window handles.
2014-04-11 Carlos Garcia Campos <cgarcia@igalia.com>
wk2-gtk does not display anything
https://bugs.webkit.org/show_bug.cgi?id=125558
Reviewed by Martin Robinson.
Remove fcntl call to set access mode flags on the duplicated files
descriptor. Those flags are ignored in Linux and make fcntl to
fail in FreeBSD. We should handle the case where the passed
protection is ReadOnly.
Thanks to Raphael Kubo da Costa who proposed the solution.
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::createHandle):
(WebKit::accessModeFile): Deleted.
2014-04-11 Zan Dobersek <zdobersek@igalia.com>
[GTK][WK2] Move Vector objects into WebEditorClient::executePendingEditorCommands() invocations
https://bugs.webkit.org/show_bug.cgi?id=131454
Reviewed by Carlos Garcia Campos.
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::executePendingEditorCommands): Take a const reference of the Vector
object to avoid unnecessary copies. Also deploy two range-based for loops and efficiently move
the Editor::Command objects into the other Vector.
2014-04-10 Dan Bernstein <mitz@apple.com>
<rdar://problem/16582465> [Cocoa] Avoid casts from CF types to unrelated Objective-C types
https://bugs.webkit.org/show_bug.cgi?id=131529
Reviewed by Mark Rowe.
* Shared/API/c/cf/WKStringCF.mm:
(WKStringCreateWithCFString): Cast the CFStringRef into its toll-free-bridged counterpart,
NSString, then cast the NSString into a WKNSString.
* Shared/API/c/cf/WKURLCF.mm:
(WKURLCreateWithCFURL): Cast the CFURLRef into its toll-free-bridged counterpart, NSURL,
then cast the NSURL into a WKNSURL.
2014-04-10 Dan Bernstein <mitz@apple.com>
BundlePageDiagnosticLoggingClient leaks every string passing through it.
https://bugs.webkit.org/show_bug.cgi?id=130140
Reviewed by Brent Fulgham.
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp:
(WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage): Don’t copy the
strings passed into the bundle client.
2014-04-10 Benjamin Poulain <bpoulain@apple.com>
Try to fix the debug bots after r167102
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-04-10 Gavin Barraclough <barraclough@apple.com>
Add user default for FTL JIT
https://bugs.webkit.org/show_bug.cgi?id=131520
Reviewed by Benjamin Poulain.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::decode):
* UIProcess/mac/WebContextMac.mm:
(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebContext::platformInitializeWebProcess):
- D'oh, whitespace.
2014-04-10 Gavin Barraclough <barraclough@apple.com>
Add user default for FTL JIT
https://bugs.webkit.org/show_bug.cgi?id=131520
Reviewed by Benjamin Poulain.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
- pass setting to WebContent process.
* UIProcess/mac/WebContextMac.mm:
(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebContext::platformInitializeWebProcess):
- read user default.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- set JSC::Option.
2014-04-10 Dan Bernstein <mitz@apple.com>
[Cocoa] Notify the form delegate when the custom button in the form accessory view is tapped
https://bugs.webkit.org/show_bug.cgi?id=131518
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/_WKFormDelegate.h: Declared new delegate method.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView accessoryAutoFill]): Call the new delegate method.
2014-04-10 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r167097.
https://bugs.webkit.org/show_bug.cgi?id=131519
there was already a mechanism for this, and this was
incomplete anyway (Requested by thorton on #webkit).
Reverted changeset:
"[iOS WebKit2] Disable the find overlay for now"
https://bugs.webkit.org/show_bug.cgi?id=131509
http://trac.webkit.org/changeset/167097
2014-04-10 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Disable the find overlay for now
https://bugs.webkit.org/show_bug.cgi?id=131509
Reviewed by Adele Peterson.
* Shared/WebPreferencesStore.h:
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::FindController):
(WebKit::FindController::hideFindOverlay):
(WebKit::FindController::hideFindUI):
(WebKit::FindController::setShouldShowOverlay):
* WebProcess/WebPage/FindController.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Add a setting allowing us to turn off the find-in-page overlay on iOS.
2014-04-10 Sergio Villar Senin <svillar@igalia.com>
Unreviewed GTK build fix after r167074.
This involves replacing resetDragSession() by
resetCurrentDragInformation() and dragSession().operation by
currentDragOperation().
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDragDataReceived):
(webkitWebViewBaseDragMotion):
(dragExitedCallback):
2014-04-10 Owen Taylor <otaylor@redhat.com>
[Cairo] Implement ShareableBitmap::paint() with scale factor
https://bugs.webkit.org/show_bug.cgi?id=64665
Reviewed by Martin Robinson.
* Shared/cairo/ShareableBitmapCairo.cpp (WebKit::ShareableBitmap::paint):
2014-04-10 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Support phraseboundary gesture recognizer for CJK.
https://bugs.webkit.org/show_bug.cgi?id=131493
<rdar://problem/16319583>
Reviewed by Benjamin Poulain.
On iOS it is possible with a gesture to change the selection
within the marked text.
Changing the selection triggers also the update of the inline candidates
over the keyboard area.
The patch adds the logic to decide whether the gesture can begin
as well as the code for the movement of
the selection within the marked range.
The gesture is allowed to start within a given radius from the marked
area.
* Shared/InteractionInformationAtPosition.cpp:
(WebKit::InteractionInformationAtPosition::encode):
(WebKit::InteractionInformationAtPosition::decode):
* Shared/InteractionInformationAtPosition.h:
(WebKit::InteractionInformationAtPosition::InteractionInformationAtPosition):
* Shared/ios/GestureTypes.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView pointIsNearMarkedText:]):
(toGestureType):
(toUIWKGestureType):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::getPositionInformation):
2014-04-10 Enrica Casucci <enrica@apple.com>
Unreviewed iOS build fix after http://trac.webkit.org/changeset/167074
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
2014-04-10 Alexey Proskuryakov <ap@apple.com>
Gtk build fix.
* WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::performDragControllerAction):
2014-04-09 Alexey Proskuryakov <ap@apple.com>
Eliminate DragSession structure
https://bugs.webkit.org/show_bug.cgi?id=131465
Reviewed by Benjamin Poulain.
* Scripts/webkit2/messages.py:
(struct_or_class):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<DragSession>::encode): Deleted.
(IPC::ArgumentCoder<DragSession>::decode): Deleted.
* Shared/WebCoreArgumentCoders.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView draggingEntered:]):
(-[WKView draggingUpdated:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::didPerformDragControllerAction):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::currentDragOperation):
(WebKit::WebPageProxy::currentDragIsOverFileInput):
(WebKit::WebPageProxy::currentDragNumberOfFilesToBeAccepted):
(WebKit::WebPageProxy::resetCurrentDragInformation):
(WebKit::WebPageProxy::dragSession): Deleted.
(WebKit::WebPageProxy::resetDragSession): Deleted.
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction):
2014-04-10 Martin Robinson <mrobinson@igalia.com>
[GTK] LayerTreeHostGtk is creating a software scene graph
https://bugs.webkit.org/show_bug.cgi?id=131471
Reviewed by Sergio Villar Senin.
At some point, a regression was introduced that sent the GTK+ WebKit2 scenegraph down the
software route. The rest of the file depends on the fact that the TextureMapper is the OpenGL
variety, so we should force that explicitly. This is causing crashes locally and soon we
should be able to test this directly.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize): Force the use of the OpenGL scenegraph.
2014-04-09 Jeremy Jones <jeremyj@apple.com>
Fix build failure when #if USE(XPC_SERVICES) is false.
https://bugs.webkit.org/show_bug.cgi?id=131474
Reviewed by Dan Bernstein.
Fix build.
* UIProcess/ios/WebProcessProxyIOS.mm:
Add #if around BackgroundTabFlags ForegroundTabFlags to prevent unused variable error.
2014-04-09 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Add API to set preferred languages
https://bugs.webkit.org/show_bug.cgi?id=131435
Reviewed by Gyuyoung Kim.
Add ewk_context_preferred_languages_set to change the list of "Accept-Language".
This list is used to receive alternative version of contents, which is related
to specified languages from the contents provider.
* UIProcess/API/efl/ewk_context.cpp:
(ewk_context_preferred_languages_set):
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/tests/test_ewk2_context.cpp:
(serverCallback):
(TEST_F): Added test case for ewk_context_preferred_languages_set
2014-04-09 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Add the initial WebProcess handling of animated resize for rotation
https://bugs.webkit.org/show_bug.cgi?id=131469
Reviewed by Tim Horton.
Add the basic handling of dynamic resize from the WebProcess.
On animated resize, the UIProcess decides new target rects and scale. The information
is then passed to the WebProcess to update the content.
For various reason, the target rects and scale computed by the UIProcess can be incorrect
(for example, if viewport constraints limit the scale).
In those cases, the WebProcess has all the information to compute a better target. This patch
adds such a basic update mechanism.
Once the new values are computed, they are sent back to the UIProcess. If the rotation animation
is still ongoing, we do not want mess with it. What we do is set a temporary transform on the subviews
and restore the real value after the animation. The key is to have the two matrix multiplying to the end
value so that there is no visual difference.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]):
(setViewportConfigurationMinimumLayoutSize):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]):
(-[WKWebView _endAnimatedResize]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _frameOrBoundsChanged]):
(-[WKView setMinimumLayoutSizeOverride:]):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::dynamicViewportUpdateChangedTarget):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView setMinimumLayoutSize:]): Deleted.
* 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::dynamicViewportSizeUpdate):
2014-04-09 Martin Robinson <mrobinson@igalia.com>
Try to fix the GTK+ build after resetDragOperation rename
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDragDataReceived): Rename resetDragOperation to resetDragSession.
(dragExitedCallback): Ditto.
2014-04-09 Jeremy Jones <jeremyj@apple.com>
Enable fullscreen captions selection
https://bugs.webkit.org/show_bug.cgi?id=131069
Reviewed by Eric Carlson.
Enable media selection in fullscreen.
setLegibleMediaSelectionOptions/setAudioMediaSelectionOptions provide a list of options.
selectAudioMediaOption/selectLegibleMediaOption change the selected option.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
Add selectAudioMediaOption/selectLegibleMediaOption
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
Add selectAudioMediaOption/selectLegibleMediaOption
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::selectAudioMediaOption):
Add selectAudioMediaOption
(WebKit::WebVideoFullscreenManagerProxy::selectLegibleMediaOption):
Add selectLegibleMediaOption
* WebProcess/ios/WebVideoFullscreenManager.h:
Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions
* WebProcess/ios/WebVideoFullscreenManager.messages.in:
Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::setAudioMediaSelectionOptions):
Add setAudioMediaSelectionOptions
(WebKit::WebVideoFullscreenManager::setLegibleMediaSelectionOptions):
Add setLegibleMediaSelectionOptions
2014-04-09 Alexey Proskuryakov <ap@apple.com>
Rename some dragging functions
https://bugs.webkit.org/show_bug.cgi?id=131460
Reviewed by Tim Horton.
Renamed performDrag to performDragOperation.
Also renamed resetDragOperation to resetDragSession, because it's m_dragSession
that it resets.
* Shared/DragControllerAction.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDragDrop):
* UIProcess/API/mac/WKView.mm:
(-[WKView draggingEntered:]):
(-[WKView draggingExited:]):
(-[WKView performDragOperation:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::performDragOperation):
(WebKit::WebPageProxy::performDrag): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::resetDragSession):
(WebKit::WebPageProxy::resetDragOperation): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction):
2014-04-09 Gavin Barraclough <baraclough@apple.com>
Update SPI for managing tabs
https://bugs.webkit.org/show_bug.cgi?id=131453
Reviewed by Alexey Proskuryakov.
* Configurations/WebKit2.xcconfig:
- added AssertionServices
* UIProcess/WebProcessProxy.h:
- added m_assertion, m_assertionState.
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::updateProcessState):
- create BKSProcessAssertion to take an assertion.
2014-04-09 Enrica Casucci <enrica@apple.com>
WK2: Dictated words disappear after being inserted.
https://bugs.webkit.org/show_bug.cgi?id=131458
<rdar://problem/16395011>
Reviewed by Benjamin Poulain.
The dictation engine treats selected text as text to be
removed. We need to ensure that the range selected to insert the
new text isn't reflected in the UI process until we are done
inserting the text.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::replaceDictatedText):
2014-04-09 Brady Eidson <beidson@apple.com>
Don't offer "contact" actions in telephone number menus
<rdar://problem/16556907> and https://bugs.webkit.org/show_bug.cgi?id=131451
Reviewed by Tim Horton.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showTelephoneNumberMenu): Skip actions that have to do with contacts,
and skip separators too!
2014-04-09 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r166975.
Do not use WebPage removed API to fix the build. Page overlays are
no broken, see https://bugs.webkit.org/show_bug.cgi?id=131433.
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::display):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize):
(WebKit::LayerTreeHostGtk::paintContents):
2014-04-09 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r166965.
* WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::WebDragClient::startDrag): Rename Clipboard to DataTransfer.
2014-04-08 Hyowon Kim <hw1008.kim@samsung.com>
Fix EFL Build errors since r166975.
https://bugs.webkit.org/show_bug.cgi?id=131421
Reviewed by Gyuyoung Kim.
This patch is just for fixing EFL build errors.
The page overlay functionality is not working yet.
* CMakeLists.txt:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::display):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::paintLayerContents):
* WebProcess/WebPage/PageOverlayController.cpp:
* WebProcess/WebPage/TapHighlightController.cpp:
(WebKit::TapHighlightController::hideHighlight):
2014-04-08 Jon Lee <jonlee@apple.com>
Turn MSE on by default
https://bugs.webkit.org/show_bug.cgi?id=131313
<rdar://problem/16525223>
Reviewed by Jer Noble.
* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferencesStore.h: Set default to true.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
2014-04-08 Ryosuke Niwa <rniwa@webkit.org>
Fix the typo in the previous commit.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
2014-04-08 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r 166890): Crash inside WebKit::WebEditorClient::textFieldDidEndEditing
https://bugs.webkit.org/show_bug.cgi?id=131409
Reviewed by Anders Carlsson.
Create an empty API::InjectedBundle::FormClient to avoid crashing inside
m_mainFrame->coreFrame()->loader().detachFromParent().
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
2014-04-08 Tim Horton <timothy_horton@apple.com>
Unify and factor out page overlay implementations
https://bugs.webkit.org/show_bug.cgi?id=131353
Reviewed by Anders Carlsson.
* WebProcess/WebPage/PageOverlayController.cpp:
(WebKit::PageOverlayController::uninstallPageOverlay):
Don't turn fast scrolling back off unless the last overlay is removed.
2014-04-08 Anders Carlsson <andersca@apple.com>
Add a WKNavigationAction property indicating whether it resulted from processing a user gesture
https://bugs.webkit.org/show_bug.cgi?id=131405
<rdar://problem/16535453>
Reviewed by Tim Horton.
* Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::NavigationActionData):
(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):
* Shared/NavigationActionData.h:
* UIProcess/API/Cocoa/WKNavigationActionInternal.h:
* UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
2014-04-08 Tim Horton <timothy_horton@apple.com>
Unify and factor out page overlay implementations
https://bugs.webkit.org/show_bug.cgi?id=131353
Reviewed by Anders Carlsson.
Bring all of the PageOverlay code together in a single cross-platform
PageOverlayController, including hit-testing code from WebPage and painting
and layer-tree manipulation code from the DrawingArea.
This also makes all PageOverlays a single GraphicsLayer tree which can be
flushed and plugged into any DrawingArea in a straightforward manner.
We no longer have to watch for individual layers flipping into/out of tiling,
because they're hidden underneath the root PageOverlay GraphicsLayer.
Additionally, because GraphicsLayer is cross-platform, we can share
all of the fairly trivial but oft-repeated overlay management code.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/PageOverlayController.cpp: Added.
* WebProcess/WebPage/PageOverlayController.h: Added.
(WebKit::PageOverlayController::rootLayer):
Add PageOverlayController.
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
Remove PageOverlay-related code from the DrawingAreas.
* WebProcess/WebPage/PageOverlay.cpp:
(WebKit::PageOverlay::setNeedsDisplay):
(WebKit::PageOverlay::fadeAnimationTimerFired):
(WebKit::PageOverlay::clear):
* WebProcess/WebPage/PageOverlay.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::didChangeScrollOffset):
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
Use PageOverlayController instead of the DrawingArea/WebPage to manipulate page overlays.
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::pageOverlayController):
Remove PageOverlay-related code from WebPage.
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::outOfTreeLayerWasAdded): Deleted.
(WebKit::RemoteLayerTreeContext::outOfTreeLayerWillBeRemoved): Deleted.
(WebKit::RemoteLayerTreeContext::flushOutOfTreeLayers): Deleted.
Remove the no-longer-necessary out-of-tree layer code.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageInstallPageOverlayWithAnimation):
(WKBundlePageUninstallPageOverlayWithAnimation):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::highlight):
(WebKit::WebInspectorClient::hideHighlight):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll):
(WebKit::FindController::hideFindUI):
* WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
(WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded):
(WebKit::TelephoneNumberOverlayController::destroyOverlay):
Make use of the FadeMode enum.
2014-04-08 Anders Carlsson <andersca@apple.com>
Change WebPageProxy::CreateNewPage to take a NavigationActionData object
https://bugs.webkit.org/show_bug.cgi?id=131401
Reviewed by Dan Bernstein.
* UIProcess/API/APIUIClient.h:
(API::UIClient::createNewPage):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/API/Cocoa/WKNavigationAction.mm:
(toWKNavigationType):
* UIProcess/API/Cocoa/WKNavigationActionInternal.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::toWKNavigationType): Deleted.
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
2014-04-08 Anders Carlsson <andersca@apple.com>
Fix build.
* WebKit2Prefix.h:
2014-04-08 Anders Carlsson <andersca@apple.com>
Use an explicit class when decoding individual bundle parameters
https://bugs.webkit.org/show_bug.cgi?id=131392
<rdar://problem/16213914>
Reviewed by Dan Bernstein.
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::setBundleParameter):
2014-04-08 Anders Carlsson <andersca@apple.com>
Move a Mountain Lion declaration to the WebKit2 prefix header
https://bugs.webkit.org/show_bug.cgi?id=131391
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKProcessPool.mm:
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/mac/WebContextMac.mm:
* WebKit2Prefix.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
2014-04-08 Antti Koivisto <antti@apple.com>
Remove exposedRect from TileController
https://bugs.webkit.org/show_bug.cgi?id=131378
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):
Update the visible rect for pageOverlayLayers by calling flushCompositingState. This way
tile controller visible rect updates always happens via compositing flush (we assert
for this in TileController::setVisibleRect).
2014-04-08 Alexey Proskuryakov <ap@apple.com>
Rename Clipboard to DataTransfer
https://bugs.webkit.org/show_bug.cgi?id=131371
Reviewed by Anders Carlsson.
* WebProcess/WebCoreSupport/WebDragClient.cpp:
(WebKit::WebDragClient::willPerformDragSourceAction):
(WebKit::WebDragClient::startDrag):
* WebProcess/WebCoreSupport/WebDragClient.h:
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::startDrag):
2014-04-08 Alexey Proskuryakov <ap@apple.com>
FlagsChanged events are not delivered to input methods when using async text input
https://bugs.webkit.org/show_bug.cgi?id=131383
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm: (-[WKView _interpretKeyEvent:completionHandler:]):
The early return is no longer needed.
2014-04-08 Tim Horton <timothy_horton@apple.com>
WebKit2 View Gestures (Swipe): Swipe-start hysteresis
https://bugs.webkit.org/show_bug.cgi?id=127393
<rdar://problem/15876822>
Reviewed by Anders Carlsson.
We shouldn't start a swipe immediately upon very small scrolls in the correct direction,
because we don't want to get the user trapped in a swipe when they want to scroll.
We'll accumulate the scroll deltas and wait until the user has scrolled at least 15px horizontally.
In addition, we'll drop the swipe completely if any event has a vertical delta equal to half (or more)
of the horizontal delta.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::deltaIsSufficientToBeginSwipe):
(WebKit::ViewGestureController::handleScrollWheelEvent):
(WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore):
2014-04-07 Jer Noble <jer.noble@apple.com>
[Mac][WK2] Videos do not have access to session cookies
https://bugs.webkit.org/show_bug.cgi?id=129687
Reviewed by Eric Carlson.
Update the CookieStorageShim to track changes in underlying networking stack.
* Shared/mac/CookieStorageShim.mm:
(WebKit::CookieStorageShim::initialize):
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
2014-04-08 Dan Bernstein <mitz@apple.com>
[Cocoa] Add a way to tell whether a WKWebProcessPlugInNodeHandle is a text-type HTML input element
https://bugs.webkit.org/show_bug.cgi?id=131374
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(-[WKWebProcessPlugInNodeHandle isTextField]): Added this getter. Calls
InjectedBundleNodeHandle::isTextField.
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::isTextField): Added. Uses
WebCore::HTMLInputElement::isText, which is consistent with what
WebChromeClient::focusedElementChanged uses to decide whether to call didFocusTextField.
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
2014-04-08 Dan Bernstein <mitz@apple.com>
[Cocoa] Add a _certificateChain property to WKWebProcessPlugInFrame
https://bugs.webkit.org/show_bug.cgi?id=131370
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame _certificateChain]): Added this getter, which uses the new
WebFrame::certificateInfo.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::certificateInfo): Added this getter.
* WebProcess/WebPage/WebFrame.h:
2014-04-08 Dan Bernstein <mitz@apple.com>
[Cocoa] Add a bundle form delegate method corresponding to textDidChangeInTextField
https://bugs.webkit.org/show_bug.cgi?id=131369
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared
new delegate method.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added an override
of API::InjectedBundle::FormClient::textDidChangeInTextField which calls the new delegate
method.
2014-04-08 Dan Bernstein <mitz@apple.com>
[Cocoa] Add WKFormDelegate
https://bugs.webkit.org/show_bug.cgi?id=131343
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _formDelegate]): Added this accessor.
(-[WKWebView _setFormDelegate:]): Ditto.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared _formDelegate property.
* UIProcess/API/Cocoa/_WKFormDelegate.h: Added.
* UIProcess/API/Cocoa/_WKFormInputSession.h: Added.
* UIProcess/ios/WKContentView.h: Moved _webView ivar into the @interface…
* UIProcess/ios/WKContentView.mm: …from the @implementation.
* UIProcess/ios/WKContentViewInteraction.h: Added _formInputSession ivar and
formAccessoryView property.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession initWithContentView:userObject:]): Added.
(-[WKFormInputSession dealloc]): Added.
(-[WKFormInputSession userObject]): Added.
(-[WKFormInputSession isValid]): Added.
(-[WKFormInputSession accessoryViewCustomButtonTitle]): Added.
(-[WKFormInputSession setAccessoryViewCustomButtonTitle:]): Added.
(-[WKFormInputSession invalidate]): Added.
(-[WKContentView cleanupInteraction]): Invalidate and release the input session.
(-[WKContentView formAccessoryView]): Added this accessor.
(-[WKContentView _startAssistingNode:userObject:]): Create an input session and message the
form delegate.
(-[WKContentView _stopAssistingNode]): Invalidate and release the input session.
* WebKit2.xcodeproj/project.pbxproj: Added references to new files.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added
comment.
2014-04-08 Daniel Bates <dabates@apple.com>
Fallback to default storage session when there isn't a valid session ID
https://bugs.webkit.org/show_bug.cgi?id=131326
<rdar://problem/16231679>
Reviewed by Alexey Proskuryakov.
Fixes and issue where we may use the wrong storage session after disabling
a private browsing session.
Currently WebKit1 and WebKit2 without NetworkProcess assume that there
is always a non-null private browsing storage session so long as the page
has a non-default session ID. Instead we should only use the private browsing
storage session when it's non-null and the page has a non-default session ID;
otherwise, we should use the default storage session. This change will make
the behavior in WebKit1 and WebKit2 without NetworkProcess consistent with
the behavior in WebKit2 with NetworkProcess.
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::storageSession):
2014-04-08 Youenn Fablet <youenn.fablet@crf.canon.fr>
[SOUP] Control cookie management according ResourceRequest.allowCookies()
https://bugs.webkit.org/show_bug.cgi?id=131026
Reviewed by Sergio Villar Senin.
Added setting of accept cookies policy for the current soup network session cookie jar and all tracked sessions.
Moved the implementation of cookie policy setting from WebCookieManager to WebFrameNetworkingContext.
* WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Moved implementation to WebCookieManager::platformSetHTTPCookieAcceptPolicy.
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Moved implementation from WebCookieManager::platformSetHTTPCookieAcceptPolicy and set the cookie jar accept policy to the cookie jars of all sessions in addition to the default cookie jar.
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h: Added method prototype.
2014-04-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[WK2] Fix unused parameter compile warning
https://bugs.webkit.org/show_bug.cgi?id=131260
Reviewed by Darin Adler.
Remove the arguments name without UNUSED_PARAM().
* UIProcess/API/APIDownloadClient.h:
(API::DownloadClient::didReceiveData):
(API::DownloadClient::shouldDecodeSourceDataOfMIMEType):
(API::DownloadClient::decideDestinationWithSuggestedFilename):
(API::DownloadClient::didCreateDestination):
* UIProcess/API/APIFindClient.h:
(API::FindClient::didCountStringMatches):
(API::FindClient::didFindString):
* UIProcess/API/APIHistoryClient.h:
(API::HistoryClient::didPerformClientRedirect):
(API::HistoryClient::didPerformServerRedirect):
(API::HistoryClient::didUpdateHistoryTitle):
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didStartProvisionalLoadForFrame):
(API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(API::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(API::LoaderClient::didCommitLoadForFrame):
(API::LoaderClient::didFinishLoadForFrame):
(API::LoaderClient::didFailLoadWithErrorForFrame):
(API::LoaderClient::didChangeBackForwardList):
* UIProcess/API/APIPolicyClient.h:
(API::PolicyClient::decidePolicyForNavigationAction):
(API::PolicyClient::decidePolicyForNewWindowAction):
(API::PolicyClient::decidePolicyForResponse):
(API::PolicyClient::unableToImplementPolicy):
2014-04-07 Alexey Proskuryakov <ap@apple.com>
[Mac] Allow com.apple.ViewBridge preferences reading in plug-in sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=131306
<rdar://problem/16359865>
Reviewed by Sam Weinig.
* Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb: Do it.
2014-04-07 Stephanie Lewis <slewis@apple.com>
Crash in com.apple.WebKit.Plugin.Development at com.apple.WebKit2: WebKit::PluginControllerProxy::pluginInstanceID
<rdar://problem/16479432>
https://bugs.webkit.org/show_bug.cgi?id=131203
Reviewed by Geoff Garen.
pluginController was being removed before accessing the pluginInstanceID.
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::removePluginControllerProxy):
2014-04-07 Dan Bernstein <mitz@apple.com>
More Mountain Lion build fix.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
2014-04-07 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Implement the update of content offset on animated resize
https://bugs.webkit.org/show_bug.cgi?id=131329
Reviewed by Tim Horton.
Compute a reasonable target offset on rotation. This goes in 3 steps:
1) Move the page so that the center does not move during scaling.
2) Limit the range to keep the page in scrollview without rubberbanding.
3) The horizontal content stays the same but the vertical area changes. When on the top or bottom
edge, stick to the edge.
The code is moved inside _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride: so that we can tell
the WebProcess where the scroll position will be at the end of the animation.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _frameOrBoundsChangedFrom:]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]):
2014-04-07 Dan Bernstein <mitz@apple.com>
Mountain Lion build fix.
* UIProcess/ios/PageClientImplIOS.mm:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
2014-04-07 Anders Carlsson <andersca@apple.com>
Handle decoding of nil invocation arguments
https://bugs.webkit.org/show_bug.cgi?id=131335
<rdar://problem/16528449>
Reviewed by Tim Horton.
* Shared/APIArray.h:
Don't crash if the array element is null.
2014-04-07 Dan Bernstein <mitz@apple.com>
Add bundle client function corresponding to startAssistingNode
https://bugs.webkit.org/show_bug.cgi?id=131332
Reviewed by Anders Carlsson.
* UIProcess/PageClient.h: Added userData parameter to startAssistingNode.
* UIProcess/WebPageProxy.h: Added message decoder parameter to startAssistingNode.
* UIProcess/WebPageProxy.messages.in: Added message decoder parameter to StartAssistingNode.
* UIProcess/ios/PageClientImplIOS.h: Updated startAssistingNode override.
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::startAssistingNode): Decode the user data into an NSObject and pass
it on to the content view.
* UIProcess/ios/WKContentViewInteraction.h: Added userObject parameter to
-_startAssitingNode:.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _startAssistingNode:userObject:]): Added userObject parameter. We will pass
it to a future delegate method.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startAssistingNode): Decode the user data and pass it to the client.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared new
delegate method.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added an implementation
of API::InjectedBundle::FormClient::willBeginInputSession which calls the new delegate
method, and encodes the user object into userData.
* WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
(API::InjectedBundle::FormClient::willBeginInputSession): Added willBeginInputSession.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::elementDidFocus): Call willBeginInputSession and send the user data along
with the StartAssistingNode message to the UI process.
2014-04-07 Jinwoo Song <jinwoo7.song@samsung.com>
Unreviewed. Fixing the EFL build.
* WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp: Include the Document header from WebCore
to avoid operating on an incomplete type.
2014-04-07 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] WKPDFView fades in tiles, PDFs load very flashily
https://bugs.webkit.org/show_bug.cgi?id=131325
<rdar://problem/16382960>
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewDidScroll:]):
Forward scroll events to the current custom content provider.
* UIProcess/Cocoa/WKWebViewContentProvider.h:
Make content providers UIScrollViewDelegates (though we only forward didScroll for now).
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):
(-[WKPDFView web_setMinimumSize:]):
(-[WKPDFView web_setScrollView:]):
(-[WKPDFView scrollViewDidScroll:]):
(-[WKPDFView _revalidateViews]):
(-[WKPDFView _computePageAndDocumentFrames]):
(-[WKPDFView layoutViews]): Deleted.
Keep track of each UIPDFPage, UIPDFPageView, and its frame (in unscaled/document coordinates).
Compute all the rects up front (and re-compute upon rotation, loading, etc.).
When scrolling, find all the pages that intersect the view (inflated by 1.5x in each
vertical direction), and ensure that pages that are inside that rect have
UIPDFPageViews installed, and ones that are outside that rect do not.
Use setUseBackingLayer to ensure that we have a low-resolution layer behind the
tiled layer to avoid flashiness.
2014-04-07 Dan Bernstein <mitz@apple.com>
Add API::InjectedBundle::FormClient
https://bugs.webkit.org/show_bug.cgi?id=131317
Reviewed by Anders Carlsson.
* WebKit2.xcodeproj/project.pbxproj: Added reference to new file.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetFormClient):
* WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Changed to define and
create a FormClient (which derives from API::InjectedBundle::FormClient and messages a
delegate), and set it as the form client.
(didFocusTextField): Deleted.
(willSubmitForm): Deleted.
(setUpFormClient): Deleted.
* WebProcess/InjectedBundle/APIInjectedBundleFormClient.h: Added.
(API::InjectedBundle::FormClient::~FormClient):
(API::InjectedBundle::FormClient::didFocusTextField):
(API::InjectedBundle::FormClient::textFieldDidBeginEditing):
(API::InjectedBundle::FormClient::textFieldDidEndEditing):
(API::InjectedBundle::FormClient::textDidChangeInTextField):
(API::InjectedBundle::FormClient::textDidChangeInTextArea):
(API::InjectedBundle::FormClient::shouldPerformActionInTextField):
(API::InjectedBundle::FormClient::willSubmitForm):
(API::InjectedBundle::FormClient::willSendSubmitEvent):
(API::InjectedBundle::FormClient::didAssociateFormControls):
(API::InjectedBundle::FormClient::shouldNotifyOnFormChanges):
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
(WebKit::InjectedBundlePageFormClient::InjectedBundlePageFormClient): Added a constructor
from WKBundlePageFormClientBase.
(WebKit::toWKInputFieldActionType): Added helper to convert from internal enum to C SPI
enum.
(WebKit::InjectedBundlePageFormClient::shouldPerformActionInTextField): Use helper.
* WebProcess/InjectedBundle/InjectedBundlePageFormClient.h: Added inheritance from
API::InjectedBundle::FormClient, marked overrides as such.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Removed unused forward
declarations.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::toInputFieldAction): Added helper to convert from C SPI enum to internal enum.
(WebKit::WebEditorClient::doTextFieldCommandFromEvent): Use helper.
(WebKit::WebEditorClient::textWillBeDeletedInTextField): Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize m_formClient member.
(WebKit::WebPage::setInjectedBundleFormClient): Added. Updates m_formClient.
(WebKit::WebPage::close): Updated code to clear m_formClient.
(WebKit::WebPage::initializeInjectedBundleFormClient): Deleted.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::injectedBundleFormClient): Updated return type.
2014-04-07 Hyowon Kim <hw1008.kim@samsung.com>
Move to using std::unique_ptr for opengl, texmap, transforms and efl in WebCore/platform/graphics.
https://bugs.webkit.org/show_bug.cgi?id=131276
Reviewed by Darin Adler.
Replace uses of OwnPtr for TextureMapper in LayerTreeHostGtk with std::unique_ptr.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2014-04-07 Joseph Pecoraro <pecoraro@apple.com>
Make Mac only parts of TelephoneNumberOverlayController PLATFORM(MAC).
Unreviewed build fix for r166881.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showTelephoneNumberMenu): Deleted.
* WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
(WebKit::TelephoneNumberOverlayController::drawRect):
(WebKit::TelephoneNumberOverlayController::mouseEvent):
* WebProcess/WebPage/TelephoneNumberOverlayController.h:
* WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
2014-04-07 Zan Dobersek <zdobersek@igalia.com>
Unreviewed. Fixing the GTK build.
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: Include the Document header from WebCore
to avoid operating on an incomplete type.
* WebProcess/WebPage/TapHighlightController.cpp: Include the RenderElement instead of RenderObject
to make the RenderObject::style() inline accessible.
* WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp: Include the Document header from WebCore
2014-04-07 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Make back-buffers purgeable when possible
https://bugs.webkit.org/show_bug.cgi?id=131213
<rdar://problem/15373906>
Reviewed by Simon Fraser.
We should make back-buffers volatile when their owning
layer falls out of use (either stops being repainted or
is unparented), as they are inherently recreatable.
* Shared/mac/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::volatility):
(WebKit::RemoteLayerBackingStore::lastDisplayTime):
Add storage and a getter for the backing store's last paint time.
Add setter/getter for volatility of backing store.
Add RemoteLayerTreeContext param to constructor.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore):
(WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore):
Inform the RemoteLayerTreeContext when backing store
is created and destroyed. Since we only have a Context in
the Web process, this will only happen there.
(WebKit::RemoteLayerBackingStore::encode):
(WebKit::RemoteLayerBackingStore::decode):
Move some assertions out of #else blocks which are preceded by returns.
(WebKit::RemoteLayerBackingStore::display):
Update the last display time.
If the backing store was volatile, make it non-volatile.
(WebKit::RemoteLayerBackingStore::setVolatility):
Mark the relevant surfaces as volatile or not.
setVolatility:
- fails and returns false if any surfaces weren't marked
volatile because they were in use
- marks the whole backing store for repaint if the front
surface was purged
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
Make it possible to remove the RemoteLayerBackingStore on layers
that went from drawing contents to not drawing contents.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::recordSnapshot):
Adopt the new names from WebCore.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
Clear the backing store if the layer doesn't want to draw contents anymore.
(WebKit::PlatformCALayerRemote::ensureBackingStore):
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
(WebKit::RemoteLayerTreeContext::backingStoreCollection):
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::RemoteLayerTreeContext):
(WebKit::RemoteLayerTreeContext::backingStoreWasCreated):
(WebKit::RemoteLayerTreeContext::backingStoreWillBeDestroyed):
Keep a RemoteLayerBackingStoreCollection, which just keeps track
of all backing store (even unparented) created for layers in a
particular context. Forward backing store creation/deletion to it.
Remove a unused m_rootLayer member.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
If any layers had backing store changes, start the timer
on the RemoteLayerBackingStoreCollection that will mark them
purgeable once they are no longer needed.
* Shared/mac/RemoteLayerBackingStoreCollection.mm:
* Shared/mac/RemoteLayerBackingStoreCollection.h:
Keep track of all backing store for our context.
When the timer fires, run through the backing store, finding
backing store that was last painted more than 1 second ago,
and mark them purgeable. If there was more recently-painted
backing store, let the timer fire again in another second;
otherwise, stop it.
2014-04-07 Ryosuke Niwa <rniwa@webkit.org>
Another build fix after r166879.
* WebProcess/WebPage/mac/WebPageMac.mm:
2014-04-07 Dan Bernstein <mitz@apple.com>
Tried to fix the Mac build.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
2014-04-07 Brady Eidson <beidson@apple.com>
Handle clicks on DataDetectors UI for scanned phone numbers
<rdar://problem/16379588> and https://bugs.webkit.org/show_bug.cgi?id=131309
Reviewed by Tim Horton.
WebContextMenuItemDatas never need to know about a ContextMenu, so remove that concept.
Also add the concept of a selection handler for UIProcess-native menu items.
* Shared/WebContextMenuItemData.cpp:
(WebKit::WebContextMenuItemData::WebContextMenuItemData):
(WebKit::WebContextMenuItemData::encode):
(WebKit::kitItems):
(WebKit::WebContextMenuItemData::decode):
* Shared/WebContextMenuItemData.h:
(WebKit::WebContextMenuItemData::selectionHandler):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::internalShowContextMenu): Make the decoder argument optional. Make consulting the client optional.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showTelephoneNumberMenu):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKSelectionHandlerWrapper initWithSelectionHandler:std::]):
(-[WKSelectionHandlerWrapper executeSelectionHandler]):
(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::nsMenuItemVector):
(WebKit::WebContextMenuProxyMac::contextMenuItemSelected): If the represented object is a WKSelectionHandlerWrapper,
execute the selection handler. Do nothing else.
Instead of getting rects from ranges, creating highlights, and storing those highlights,
work in terms of a TelephoneNumberData object that wraps both a range and a highlight.
This makes it easier to track where the mouse is down and to know what phone number we should act on when clicked.
* WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
(WebKit::TelephoneNumberOverlayController::rectsForDrawing): Deleted.
* WebProcess/WebPage/TelephoneNumberOverlayController.h:
(WebKit::TelephoneNumberData::create):
(WebKit::TelephoneNumberData::range):
(WebKit::TelephoneNumberData::highlight):
(WebKit::TelephoneNumberData::TelephoneNumberData):
* WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
(WebKit::TelephoneNumberOverlayController::drawRect):
(WebKit::TelephoneNumberOverlayController::handleTelephoneClick): Pass the phone number text and the point to WebPage.
(WebKit::TelephoneNumberOverlayController::mouseEvent):
(WebKit::TelephoneNumberOverlayController::clearMouseDownInformation):
(WebKit::TelephoneNumberOverlayController::clearHighlights):
* WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::menuItemsWithUserData):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::handleTelephoneNumberClick): Message the phone number and coordinate to the UIProcess.
2014-04-07 Dan Bernstein <mitz@apple.com>
Introduce API::InjectedBundle::PageUIClient
https://bugs.webkit.org/show_bug.cgi?id=131310
Reviewed by Anders Carlsson.
* WebKit2.xcodeproj/project.pbxproj: Added references to new files.
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: Added #include that
became necessary.
* WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: Added.
(API::InjectedBundle::PageUIClient::~PageUIClient):
(API::InjectedBundle::PageUIClient::willAddMessageToConsole):
(API::InjectedBundle::PageUIClient::willSetStatusbarText):
(API::InjectedBundle::PageUIClient::willRunJavaScriptAlert):
(API::InjectedBundle::PageUIClient::willRunJavaScriptConfirm):
(API::InjectedBundle::PageUIClient::willRunJavaScriptPrompt):
(API::InjectedBundle::PageUIClient::mouseDidMoveOverElement):
(API::InjectedBundle::PageUIClient::pageDidScroll):
(API::InjectedBundle::PageUIClient::shouldGenerateFileForUpload):
(API::InjectedBundle::PageUIClient::generateFileForUpload):
(API::InjectedBundle::PageUIClient::statusBarIsVisible):
(API::InjectedBundle::PageUIClient::menuBarIsVisible):
(API::InjectedBundle::PageUIClient::toolbarsAreVisible):
(API::InjectedBundle::PageUIClient::didReachApplicationCacheOriginQuota):
(API::InjectedBundle::PageUIClient::didExceedDatabaseQuota):
(API::InjectedBundle::PageUIClient::plugInStartLabelTitle):
(API::InjectedBundle::PageUIClient::plugInStartLabelSubtitle):
(API::InjectedBundle::PageUIClient::plugInExtraStyleSheet):
(API::InjectedBundle::PageUIClient::plugInExtraScript):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetUIClient): Changed to create an InjectedBundlePageUIClient and set it on
the WebPage.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
(WebKit::InjectedBundlePageUIClient::InjectedBundlePageUIClient): Added constructor from
WKBundlePageUIClient.
(WebKit::toUIElementVisibility): Added helper to convert from C SPI enum to internal enum.
(WebKit::InjectedBundlePageUIClient::statusBarIsVisible): Changed to use the above.
(WebKit::InjectedBundlePageUIClient::menuBarIsVisible): Ditto.
(WebKit::InjectedBundlePageUIClient::toolbarsAreVisible): Ditto.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Added inheritance from
API::InjectedBundle::PageUIClient, marked overrides as such.
* WebProcess/Storage/StorageAreaMap.cpp: Added #include that became necessary.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::toolbarsVisible): Updated to use new internal enum.
(WebKit::WebChromeClient::statusbarVisible): Ditto.
(WebKit::WebChromeClient::menubarVisible): Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialized m_uiClient member.
(WebKit::WebPage::setInjectedBundleUIClient): Added. Updates m_uiClient.
(WebKit::WebPage::close): Updated for change in m_uiClient.
(WebKit::WebPage::pageDidScroll): Ditto.
(WebKit::WebPage::initializeInjectedBundleUIClient): Deleted.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::injectedBundleUIClient): Updated return type.
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: Added #include that became
necessary.
2014-04-06 Dan Bernstein <mitz@apple.com>
Clean up WKGestureTypes.h
https://bugs.webkit.org/show_bug.cgi?id=131286
Reviewed by Sam Weinig.
Renamed WKGestureTypes.h to GestureTypes.h, dropped the useless “WK” prefixes and changed
into scoped enums, with the exception of SelectionFlags.
* Shared/ios/GestureTypes.h: Copied from Source/WebKit2/Shared/ios/WKGestureTypes.h.
* Shared/ios/WKGestureTypes.h: Removed.
* UIProcess/API/Cocoa/_WKElementAction.mm:
(copyElement):
(saveImage):
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didUpdateBlockSelectionWithTouch):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _performAction:]):
(toGestureType):
(toUIWKGestureType):
(toSelectionTouch):
(toUIWKSelectionTouch):
(toGestureRecognizerState):
(toUIGestureRecognizerState):
(toUIWKSelectionFlags):
(toSelectionHandlePosition):
(selectionChangedWithGesture):
(selectionChangedWithTouch):
(-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
(-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::selectWithGesture):
(WebKit::distanceBetweenRectsForPosition):
(WebKit::computeEdgeCenter):
(WebKit::WebPage::expandedRangeFromHandle):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
(WebKit::shouldExpand):
(WebKit::WebPage::changeBlockSelection):
(WebKit::WebPage::updateBlockSelectionWithTouch):
(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::performActionOnElement):
2014-04-06 Sam Weinig <sam@webkit.org>
Document user content related APIs..
Reviewed by Anders Carlsson.
- Also demote WKScriptWorld to SPI.
* UIProcess/API/Cocoa/WKScriptMessage.h:
* UIProcess/API/Cocoa/WKScriptMessage.mm:
(-[WKScriptMessage _scriptWorld]):
(-[WKScriptMessage scriptWorld]): Deleted.
* UIProcess/API/Cocoa/WKScriptMessageHandler.h:
* UIProcess/API/Cocoa/WKScriptMessagePrivate.h: Added.
* UIProcess/API/Cocoa/WKScriptWorld.h: Removed.
* UIProcess/API/Cocoa/WKScriptWorld.mm: Removed.
* UIProcess/API/Cocoa/WKUserContentController.h:
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController addScriptMessageHandler:name:]):
(-[WKUserContentController removeScriptMessageHandlerForName:]):
(-[WKUserContentController _addScriptMessageHandler:name:world:]):
(-[WKUserContentController _removeScriptMessageHandlerForName:world:]):
(-[WKUserContentController addScriptMessageHandler:name:world:]): Deleted.
(-[WKUserContentController removeScriptMessageHandlerForName:world:]): Deleted.
* UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Added.
* UIProcess/API/Cocoa/_WKScriptWorld.h: Copied from WebKit2/UIProcess/API/Cocoa/WKScriptWorld.h.
* UIProcess/API/Cocoa/_WKScriptWorld.mm: Copied from WebKit2/UIProcess/API/Cocoa/WKScriptWorld.mm.
(+[_WKScriptWorld defaultWorld]):
(+[WKScriptWorld defaultWorld]): Deleted.
* WebKit2.xcodeproj/project.pbxproj:
2014-04-04 Brian J. Burg <burg@cs.washington.edu>
Enable WEB_REPLAY for PLATFORM(MAC)
https://bugs.webkit.org/show_bug.cgi?id=130700
Reviewed by Timothy Hatcher.
* Configurations/FeatureDefines.xcconfig:
2014-04-05 Miyoung Shin <myid.m.shin@gmail.com>
[WK2] Fix unused parameter compile warning.
https://bugs.webkit.org/show_bug.cgi?id=131260
Reviewed by Gyuyoung Kim.
fix unused parameter warning in the WebKit2 build.
* UIProcess/API/APIDownloadClient.h:
(API::DownloadClient::didReceiveData):
(API::DownloadClient::shouldDecodeSourceDataOfMIMEType):
(API::DownloadClient::decideDestinationWithSuggestedFilename):
(API::DownloadClient::didCreateDestination):
2014-04-05 Alexey Proskuryakov <ap@apple.com>
REGRESSION (NetworkProcess): Subresources fail to load from AppCache
https://bugs.webkit.org/show_bug.cgi?id=131262
<rdar://problem/15370653>
Reviewed by Sam Weinig.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad): Check application cache,
as done in ResourceLoader::start() for in-process loads.
2014-04-05 Alexey Proskuryakov <ap@apple.com>
Frequent PluginProcess crashes at libsqlite3.dylib: openDatabase
https://bugs.webkit.org/show_bug.cgi?id=131264
<rdar://problem/14165329>
Reviewed by Sam Weinig.
Don't create NSURLCache until after having called setenv.
* PluginProcess/PluginProcess.h: Added m_nsurlCacheDirectory.
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializePluginProcess): Compute NSURL cache path
on our own. This does not match CFNetwork's result in most cases, but should work
equally well.
(WebKit::PluginProcess::initializeSandbox): Create a cache with our path and best
guess for capacity.
2014-04-04 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed. iOS Build fix after r166818.
These member variables / declarations are accessed by iOS
in shared code in TelephoneNumberOverlayControllerMac.
* WebProcess/WebPage/TelephoneNumberOverlayController.h:
2014-04-04 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed. Rollout r166812, breaks 32-bit Mavericks build.
* Shared/mac/CookieStorageShim.mm:
(WebKit::CookieStorageShim::initialize):
(-[WKNSURLSessionLocal _copyCookiesForRequestUsingAllAppropriateStorageSemantics:]):
2014-04-04 Brady Eidson <beidson@apple.com>
Show DataDetector UI on scanned phone numbers.
<rdar://problem/16379588> and https://bugs.webkit.org/show_bug.cgi?id=131247
Reviewed by Tim Horton.
Add a new PageOverlay for telephone number UI, handle drawing the UI, and
handle mouse clicks on the button in that UI.
Even though clicks are detected, they aren’t acted upon yet.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged): Pass ranges to
the TelephoneNumberController.
* WebProcess/WebCoreSupport/WebEditorClient.h:
This controller handles installing/removing the PageOverlay, drawing the UI elements,
and handling mouse events while any of the UI elements are shown.
There’s also a clumsy attempt to keep platform-specific parts separated out.
* WebProcess/WebPage/TelephoneNumberOverlayController.cpp: Added.
(WebKit::TelephoneNumberOverlayController::TelephoneNumberOverlayController):
(WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded):
(WebKit::TelephoneNumberOverlayController::destroyOverlay):
(WebKit::TelephoneNumberOverlayController::pageOverlayDestroyed):
(WebKit::TelephoneNumberOverlayController::willMoveToWebPage):
(WebKit::TelephoneNumberOverlayController::didMoveToWebPage):
(WebKit::TelephoneNumberOverlayController::rectsForDrawing):
(WebKit::TelephoneNumberOverlayController::selectedTelephoneNumberRangesChanged):
* WebProcess/WebPage/TelephoneNumberOverlayController.h: Added.
(WebKit::TelephoneNumberOverlayController::create):
* WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm: Added.
(WebKit::TelephoneNumberOverlayController::drawRect):
(WebKit::TelephoneNumberOverlayController::handleTelephoneClick):
(WebKit::TelephoneNumberOverlayController::mouseEvent):
(WebKit::TelephoneNumberOverlayController::clearMouseDownInformation):
(WebKit::TelephoneNumberOverlayController::clearHighlights):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::telephoneNumberOverlayController):
* WebProcess/WebPage/WebPage.h:
* WebKit2.xcodeproj/project.pbxproj:
2014-04-04 Martin Hock <mhock@apple.com>
Include Session ID in WebPageCreationParameters.
https://bugs.webkit.org/show_bug.cgi?id=131239
<rdar://problem/16175483>
Reviewed by Sam Weinig.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
2014-04-04 Jer Noble <jer.noble@apple.com>
[Mac][WK2] Videos do not have access to session cookies
https://bugs.webkit.org/show_bug.cgi?id=129687
Reviewed by Eric Carlson.
Update the CookieStorageShim to track changes in underlying networking stack.
* Shared/mac/CookieStorageShim.mm:
(WebKit::CookieStorageShim::initialize):
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
2014-04-04 Alexey Proskuryakov <ap@apple.com>
Improve error checking in WebPageProxy::didReceiveEvent
https://bugs.webkit.org/show_bug.cgi?id=131243
<rdar://problem/16529207>
Reviewed by Anders Carlsson.
* UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didReceiveEvent):
2014-04-04 Anders Carlsson <andersca@apple.com>
More documentation
https://bugs.webkit.org/show_bug.cgi?id=131238
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKNavigation.h:
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
2014-04-04 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
[GTK][CMake] Use a stricter check for the HAVE_GTK_UNIX_PRINTING define
https://bugs.webkit.org/show_bug.cgi?id=131226
Reviewed by Carlos Garcia Campos.
#cmakedefine01 will define HAVE_GTK_UNIX_PRINTING to 0 instead of #undef'ining it. This
means that simple checks like #ifdef HAVE_GTK_UNIX_PRINTING will always be true -- we
actually need to check if the value is set to 1, which is precisely what the HAVE() macro
does, so start using it.
* UIProcess/API/gtk/WebKitPrintOperation.cpp:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print):
* WebProcess/WebPage/gtk/PrinterListGtk.cpp:
* WebProcess/WebPage/gtk/PrinterListGtk.h:
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::create):
2014-04-03 Chris Fleizach <cfleizach@apple.com>
AX: iOS does not need to spin the run loop on synchronous message calls
https://bugs.webkit.org/show_bug.cgi?id=131195
Reviewed by Dan Bernstein.
On the Mac platform, we need to spin the run loop while making synchronous calls to avoid VoiceOver hanging.
On iOS, this not needed due to architectural differences.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::synchronousMessagesShouldSpinRunLoop):
* WebProcess/WebPage/WebPage.h:
2014-04-03 Andy Estes <aestes@apple.com>
[Cocoa] Add additional WKWebView SPI for clients that interact with PDFs
https://bugs.webkit.org/show_bug.cgi?id=131206
Reviewed by Dan Bernstein.
Add _dataForDisplayedPDF and _suggestedFilenameForDisplayedPDF to
support clients that wish to save a copy of the currently displayed PDF
to disk. Ultimately we should support this use case by exposing something
like WKWebViewContentProvider, but for now let's do something simple.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]):
(-[WKWebView _dataForDisplayedPDF]):
(-[WKWebView _suggestedFilenameForDisplayedPDF]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/WKWebViewContentProvider.h:
* UIProcess/ios/WKPDFView.h:
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView documentData]):
(-[WKPDFView suggestedFilename]):
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):
2014-04-03 Eunmi Lee <eunmi15.lee@samsung.com>
[EFL][WK2] Add API to get contents size of current web page.
https://bugs.webkit.org/show_bug.cgi?id=131148
Reviewed by Gyuyoung Kim.
Application can want to get contents size of current web page without
monitoring "contents,size,changed" signal, so I add API to get contents
size directly.
* UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
(WKViewGetContentsSize): WK API to get contents size from WebView.
* UIProcess/API/C/CoordinatedGraphics/WKView.h:
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_contents_size_get): new API to get contents size.
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
2014-04-03 Jinwoo Song <jinwoo7.song@samsung.com>
[WK2][EFL] Use template method in creating NativeWebMouseEvent
https://bugs.webkit.org/show_bug.cgi?id=131152
Reviewed by Anders Carlsson.
There are three EFL mouse events, such as Evas_Event_Mouse_Down, Evas_Event_Mouse_Up,
and Evas_Event_Mouse_Move. They can be defined as a template method.
* PlatformEfl.cmake: Remove NativeWebMouseEventEfl.cpp
* Shared/NativeWebMouseEvent.h:
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Add a template method.
* Shared/efl/NativeWebMouseEventEfl.cpp: Removed.
2014-04-03 Anders Carlsson <andersca@apple.com>
Add WKWebView documentation
https://bugs.webkit.org/show_bug.cgi?id=131190
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKBackForwardListItem.h:
* UIProcess/API/Cocoa/WKNavigationAction.h:
* UIProcess/API/Cocoa/WKWebView.h:
2014-04-03 Michael Saboff <msaboff@apple.com>
REGRESSION: PCE.js is 20x slower in WebKit2 because timers are throttled
https://bugs.webkit.org/show_bug.cgi?id=131189
Reviewed by Geoffrey Garen.
Elevate the priority of all WebKit2 service processes on iOS, not just the network process.
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
2014-04-03 Simon Fraser <simon.fraser@apple.com>
ASSERT(m_children.isEmpty()) in PlatformCALayerRemote::removeAllSublayers() on time.com
https://bugs.webkit.org/show_bug.cgi?id=131187
Reviewed by Maciej Stachowiak.
After a call to PlatformCALayerRemote::adoptSublayers() when a layer
toggles between tiled and non-tiled, we'd assert in PlatformCALayerRemote::removeAllSublayers()
that not all sublayers had been removed (there was one with a null superlayer).
Fix by ensuring that we don't copy over custom subviews when adoptSublayers()
is called; they'll get added as we update children anyway.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::adoptSublayers):
2014-04-03 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Add SPI to handle animated resize
https://bugs.webkit.org/show_bug.cgi?id=131141
Reviewed by Simon Fraser.
Set up a basic API to handle animated resize. The code does not do much at the moment,
it is mostly to have an interface we can implement later.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView setFrame:]):
(-[WKWebView setBounds:]):
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _frameOrBoundsChangedFrom:]):
(-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _frameOrBoundsChanged]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-04-03 Simon Fraser <simon.fraser@apple.com>
Pixelated WebView when display is changed from hiDPI to regularDPI
https://bugs.webkit.org/show_bug.cgi?id=131185
<rdar://problem/16512184&16503714>
Reviewed by Tim Horton.
TileController function was renamed.
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
(WebKit::PlatformCALayerRemoteTiledBacking::setContentsScale):
2014-04-03 Sam Weinig <sam@webkit.org>
[WebKit2] Promote user script SPI to API
https://bugs.webkit.org/show_bug.cgi?id=131181
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKScriptMessage.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessage.h.
* UIProcess/API/Cocoa/WKScriptMessage.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessage.mm.
(-[WKScriptMessage scriptWorld]):
(-[_WKScriptMessage scriptWorld]): Deleted.
* UIProcess/API/Cocoa/WKScriptMessageHandler.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessageHandler.h.
* UIProcess/API/Cocoa/WKScriptWorld.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
* UIProcess/API/Cocoa/WKScriptWorld.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.mm.
(+[WKScriptWorld defaultWorld]):
(+[_WKScriptWorld defaultWorld]): Deleted.
* UIProcess/API/Cocoa/WKUserContentController.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentController.h.
* UIProcess/API/Cocoa/WKUserContentController.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentController.mm.
(-[WKUserContentController addScriptMessageHandler:name:world:]):
(-[WKUserContentController removeScriptMessageHandlerForName:world:]):
(-[_WKUserContentController addScriptMessageHandler:name:world:]): Deleted.
(-[_WKUserContentController removeScriptMessageHandlerForName:world:]): Deleted.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration userContentController]):
(-[WKWebViewConfiguration setUserContentController:]):
(-[WKWebViewConfiguration _userContentController]): Deleted.
(-[WKWebViewConfiguration _setUserContentController:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/_WKScriptMessage.h: Removed.
* UIProcess/API/Cocoa/_WKScriptMessage.mm: Removed.
* UIProcess/API/Cocoa/_WKScriptMessageHandler.h: Removed.
* UIProcess/API/Cocoa/_WKScriptWorld.h: Removed.
* UIProcess/API/Cocoa/_WKScriptWorld.mm: Removed.
* UIProcess/API/Cocoa/_WKUserContentController.h: Removed.
* UIProcess/API/Cocoa/_WKUserContentController.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2014-04-03 Anders Carlsson <andersca@apple.com>
Make download policy decisions SPI for now
https://bugs.webkit.org/show_bug.cgi?id=131179
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
(NS_ENUM):
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
(NS_ENUM):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):
2014-04-02 Simon Fraser <simon.fraser@apple.com>
Harden FilterOperation type casting
https://bugs.webkit.org/show_bug.cgi?id=131142
Reviewed by Sam Weinig.
DefaultFilterOperation had an error-prone behavior where it set the base class
OperationType to the type of some other filter class, but overrode isDefault().
This made it very easy to write incorrect code that casted incorrectly based on type().
Fix by making adding a DEFAULT filter operation type, and storing the represented
type on DefaultFilterOperation().
Also remove the OperationType argument for constructors of FilterOperations that
can only be of one type, to avoid possible mistakes.
Make the type cast macros a bit more normal, and use them in a few places.
Fixed PlatformCAFiltersMac to handle the default filter case more cleanly.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeFilterOperation):
(IPC::decodeFilterOperation):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
2014-04-03 Alexey Proskuryakov <ap@apple.com>
REGRESSION (Async text input): Controls become unresponsive to mouse events
https://bugs.webkit.org/show_bug.cgi?id=131176
<rdar://problem/16507932>
Reviewed by Tim Horton.
* UIProcess/API/mac/WKView.mm: (NATIVE_MOUSE_EVENT_HANDLER):
Don't confuse event handling machinery by sending events to WebProcess twice.
2014-04-03 Anders Carlsson <andersca@apple.com>
WKWebView should always have a UIDelegate, even when closed
https://bugs.webkit.org/show_bug.cgi?id=131174
<rdar://problem/16389248>
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView UIDelegate]):
(-[WKWebView setUIDelegate:]):
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIDelegate):
(WebKit::UIDelegate::~UIDelegate):
(WebKit::UIDelegate::createUIClient):
(WebKit::UIDelegate::delegate):
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::UIClient):
(WebKit::UIDelegate::UIClient::~UIClient):
(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::actionsForElement):
(WebKit::UIClient::UIClient): Deleted.
(WebKit::UIClient::~UIClient): Deleted.
(WebKit::UIClient::delegate): Deleted.
(WebKit::UIClient::setDelegate): Deleted.
(WebKit::UIClient::createNewPage): Deleted.
(WebKit::UIClient::runJavaScriptAlert): Deleted.
(WebKit::UIClient::runJavaScriptConfirm): Deleted.
(WebKit::UIClient::runJavaScriptPrompt): Deleted.
(WebKit::UIClient::actionsForElement): Deleted.
* UIProcess/ios/WKActionSheetAssistant.mm:
2014-04-02 Anders Carlsson <andersca@apple.com>
Document WKNavigationAction and WKNavigationResponse
https://bugs.webkit.org/show_bug.cgi?id=131138
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKFrameInfo.h:
* UIProcess/API/Cocoa/WKNavigationAction.h:
* UIProcess/API/Cocoa/WKNavigationResponse.h:
2014-04-03 Anders Carlsson <andersca@apple.com>
Make actionsForElement a proper API::UIClient member function
https://bugs.webkit.org/show_bug.cgi?id=131171
Reviewed by Sam Weinig.
* UIProcess/API/APIUIClient.h:
(API::UIClient::actionsForElement):
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIClient::actionsForElement):
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
2014-04-03 Martin Hodovan <mhodovan@inf.u-szeged.hu>
[WK2] Fix !ENABLE(BLOB) build
https://bugs.webkit.org/show_bug.cgi?id=131164
Reviewed by Alexey Proskuryakov.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
2014-04-03 Anders Carlsson <andersca@apple.com>
Fix iOS build.
* UIProcess/ios/WKActionSheetAssistant.mm:
2014-04-03 Anders Carlsson <andersca@apple.com>
Rename UIClient.{h, mm} to UIDelegate.{h, mm}.
Rubber-stamped by Dan Bernstein.
* UIProcess/API/Cocoa/WKWebView.mm:
* UIProcess/Cocoa/UIDelegate.h: Renamed from Source/WebKit2/UIProcess/Cocoa/UIClient.h.
* UIProcess/Cocoa/UIDelegate.mm: Renamed from Source/WebKit2/UIProcess/Cocoa/UIClient.mm.
* WebKit2.xcodeproj/project.pbxproj:
2014-04-03 Andrzej Badowski <a.badowski@samsung.com>
[EFL][WK2] Replacing zoom functionality of MiniBrowser from scale_set to page_zoom_set.
https://bugs.webkit.org/show_bug.cgi?id=130391
Reviewed by Gyuyoung Kim.
Change the implementation of the zoom functionality from ewk_view_scale_set
to ewk_view_page_zoom_set. Adding to the API functions: ewk_view_page_zoom_set and
ewk_view_page_zoom_get to call appropriate WK functions.
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_page_zoom_set):
(ewk_view_page_zoom_get):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
2014-04-02 Alexey Proskuryakov <ap@apple.com>
Sandbox violation in NetworkProcess when uploading a bundle
https://bugs.webkit.org/show_bug.cgi?id=131133
Reviewed by Brady Eidson.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::cleanup):
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
Don't delete the files. It can't work.
2014-04-02 Jinwoo Song <jinwoo7.song@samsung.com>
[WK2][EFL] Remove unnecessary reinterpret_cast<> in unit testcase
https://bugs.webkit.org/show_bug.cgi?id=131143
Reviewed by Gyuyoung Kim.
Ecore_Timer callback requires *Eina_Bool* return type instead of *bool*.
Also, WebKit/EFL port coding style recommends to use *Eina_Bool* in the
callback function for EFL event handler. Additionally, replaced 0 to nullptr.
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
(EWK2UnitTest::CallbackDataTimer::CallbackDataTimer):
(EWK2UnitTest::CallbackDataTimer::setDone):
(EWK2UnitTest::CallbackDataTimer::timeOutCallback):
(EWK2UnitTest::CallbackDataTimer::setTimedOut):
* UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
(EWK2StorageManagerTest::timerCallback):
(TEST_F):
2014-04-02 Tim Horton <timothy_horton@apple.com>
Remove a FIXME that happened.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::display):
2014-04-02 Tim Horton <timothy_horton@apple.com>
Fix the !USE(IOSURFACE) build... again.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
2014-04-02 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/131135> Introduce LockHistory and LockBackForwardList enums to use in place of bools.
These arguments are often passed using literals at the call site, where the use of bools severely hinders
the readability of the code.
Reviewed by Andreas Kling.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::clickedLink):
2014-04-02 Tim Horton <timothy_horton@apple.com>
Pool IOSurfaces to help with allocation cost
https://bugs.webkit.org/show_bug.cgi?id=131096
<rdar://problem/15373942>
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore):
(WebKit::RemoteLayerBackingStore::clearBackingStore):
(WebKit::RemoteLayerBackingStore::display):
When RemoteLayerBackingStore discards a layer, throw it into the pool.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
Disable the pool in the UI process.
2014-04-02 Alice Barraclough <alice.barraclough@apple.com>
Fix a typo causing TestWebKitAPI to timeout when testing Find.
Reviewed by Dan Bernstein.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageFindClient): Test for !functionPointer like
all the other implementations do.
2014-04-02 Dean Jackson <dino@apple.com>
[iOS] Expose geolocation provider on the process pool
https://bugs.webkit.org/show_bug.cgi?id=131125
Reviewed by Dan Bernstein.
Followup comments from Dan Bernstein. Use a class
extension rather than a new category.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _geolocationProvider]):
* UIProcess/API/Cocoa/WKProcessPoolInternal.h:
2014-04-02 Tim Horton <timothy_horton@apple.com>
RemoteLayerBackingStore doesn't need to clear opaque layers
https://bugs.webkit.org/show_bug.cgi?id=131134
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::display):
We don't need to clear opaque layers, because we'll paint
over the whole area. In addition, we should fill opaque layers
with a bright color in debug builds to make it very clear
that we've made a mistake (similar to what FrameView does).
2014-04-02 Anders Carlsson <andersca@apple.com>
Document WKBackForwardList, WKBackForwardListItem and WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=131131
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKBackForwardList.h:
* UIProcess/API/Cocoa/WKBackForwardListItem.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
2014-04-02 Anders Carlsson <andersca@apple.com>
Document WKUIDelegate and WKWindowFeatures
https://bugs.webkit.org/show_bug.cgi?id=131124
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKProcessPool.h:
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKWindowFeatures.h:
2014-04-02 Dean Jackson <dino@apple.com>
[iOS] Expose geolocation provider on the process pool
https://bugs.webkit.org/show_bug.cgi?id=131125
Patch by Sam Weinig.
Reviewed by Dean Jackson.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _geolocationProvider]): Create and initialize WKGeolocationProviderIOS if necessary.
* UIProcess/API/Cocoa/WKProcessPoolInternal.h: Expose _geolocationProvider.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]): Call into WKProcessPool.
2014-04-02 Martin Hock <mhock@apple.com>
Unify private browsing with sessions.
https://bugs.webkit.org/show_bug.cgi?id=130099
Reviewed by Alexey Proskuryakov.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: Change WebPage::isUsingEphemeralSession() to WebPage::usesEphemeralSession().
(WKBundlePageIsUsingEphemeralSession):
* WebProcess/InjectedBundle/InjectedBundle.cpp: Change Settings::setPrivateBrowsingEnabled() to Page::enableLegacyPrivateBrowsing().
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
* WebProcess/Plugins/PluginView.cpp: Change Settings::privateBrowsingEnabled() to Page::usesEphemeralSession().
(WebKit::PluginView::isPrivateBrowsingEnabled):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp: Ditto.
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::usesEphemeralSession): Renamed from isUsingEphemeralSession.
(WebKit::WebPage::setSessionID): Ensure session before setting.
(WebKit::WebPage::updatePreferences): Set session to legacy private session if needed.
(WebKit::WebPage::sessionID): Moved to header.
(WebKit::WebPage::isUsingEphemeralSession): Renamed to usesEphemeralSession.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::sessionID): Just call down to m_page.
2014-04-02 Alice Barraclough <alice.liu@apple.com>
Adding Objective-C SPI for Find in Page.
https://bugs.webkit.org/show_bug.cgi?id=131000 Need an Objective-C API or SPI for Find in Page
Reviewed by Dan Bernstein.
Find-on-page SPI added to WKWebView, which funnels the messages through the WebPageProxy.
Returning messages are designated by _WKFindDelegate protocol.
Also provide FindDelegate access on WKWebView.
WebPageProxy gets a new-style API::FindClient.
Also had to replicate WKFindOptions as _WKFindOptions in Cocoa SPI. This is unfortunate, but it
does follow the pattern of other options & enums related to classes that are SPI-for-now.
PageClientImplIOS handles setFindIndicator function by forwarding to its WKContentView,
but WKContentView _setFindIndicator remains unimplemented for now.
* UIProcess/API/APIFindClient.h: Added.
(API::FindClient::~FindClient):
(API::FindClient::didCountStringMatches):
(API::FindClient::didFindString):
(API::FindClient::didFailToFindString):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageFindClient):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView _findDelegate]):
(-[WKWebView _setFindDelegate:]):
(toFindOptions):
(-[WKWebView _countStringMatches:options:maxCount:]):
(-[WKWebView _findString:options:maxCount:]):
(-[WKWebView _hideFindUI]):
(-[WKWebView _hostForFindUI]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
(NS_OPTIONS):
* UIProcess/API/Cocoa/_WKFindDelegate.h: Added.
* UIProcess/Cocoa/FindClient.h: Added.
* UIProcess/Cocoa/FindClient.mm: Added.
(WebKit::FindClient::FindClient):
(WebKit::FindClient::delegate):
(WebKit::FindClient::setDelegate):
(WebKit::FindClient::didCountStringMatches):
(WebKit::FindClient::didFindString):
(WebKit::FindClient::didFailToFindString):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setFindClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::didCountStringMatches):
(WebKit::WebPageProxy::didFindString):
(WebKit::WebPageProxy::didFailToFindString):
(WebKit::WebPageProxy::initializeFindClient): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::findClient):
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::setFindIndicator):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _setFindIndicator:WebKit::fadeOut:animate:]):
* WebKit2.xcodeproj/project.pbxproj:
2014-04-02 Anders Carlsson <andersca@apple.com>
Rename -[WKBackForwardListItem originalURL] to -[WKBackForwardListItem initialURL]
https://bugs.webkit.org/show_bug.cgi?id=131116
Reviewed by Antti Koivisto.
* UIProcess/API/Cocoa/WKBackForwardListItem.h:
* UIProcess/API/Cocoa/WKBackForwardListItem.mm:
(-[WKBackForwardListItem initialURL]):
(-[WKBackForwardListItem originalURL]): Deleted.
2014-04-02 Antti Koivisto <antti@apple.com>
Split tile grid out from TileController
https://bugs.webkit.org/show_bug.cgi?id=131102
Reviewed by Simon Fraser.
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
(WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
2014-04-02 Anders Carlsson <andersca@apple.com>
Try a workaround for a crash
https://bugs.webkit.org/show_bug.cgi?id=131112
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView UIDelegate]):
(-[WKWebView setUIDelegate:]):
2014-04-02 Martin Robinson <mrobinson@igalia.com>
REGRESSION(r165704): [GTK] Inspector resources not correctly generated
https://bugs.webkit.org/show_bug.cgi?id=130343
Reviewed by Gustavo Noronha Silva.
* PlatformGTK.cmake: Pass all appropriate directories to the
GResources XML generation script.
2014-04-02 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Move NEWS file to a new location
https://bugs.webkit.org/show_bug.cgi?id=130901
Reviewed by Brent Fulgham.
* gtk/NEWS: Renamed from Source/WebKit/gtk/NEWS.
2014-04-01 Benjamin Poulain <bpoulain@apple.com>
<rdar://problem/16294704> Remove _pageExtendedBackgroundColor entirely
https://bugs.webkit.org/show_bug.cgi?id=131075
Reviewed by Beth Dakin.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _pageExtendedBackgroundColor]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-04-01 Anders Carlsson <andersca@apple.com>
Stub out more WKNavigation properties
https://bugs.webkit.org/show_bug.cgi?id=131080
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKNavigation.h:
* UIProcess/API/Cocoa/WKNavigation.mm:
(-[WKNavigation initialRequest]):
(-[WKNavigation response]):
(-[WKNavigation error]):
2014-04-01 Anders Carlsson <andersca@apple.com>
Rename -[WKWebView activeURL] to -[WKWebView URL]
https://bugs.webkit.org/show_bug.cgi?id=131077
Reviewed by Tim Horton.
Keep -[WKWebView activeURL] as SPI until no clients depend on it.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView URL]):
(-[WKWebView activeURL]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::willChangeActiveURL):
(WebKit::NavigationState::didChangeActiveURL):
2014-04-01 Anders Carlsson <andersca@apple.com>
Move -[WKWebView stopLoading:] back to WKIBActions
https://bugs.webkit.org/show_bug.cgi?id=131072
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView stopLoading:]):
2014-04-01 Anders Carlsson <andersca@apple.com>
Migrate more headers
https://bugs.webkit.org/show_bug.cgi?id=131068
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKBackForwardList.h:
Remove a newline.
* WebKit2.xcodeproj/project.pbxproj:
Move files from the "Deprecated" group.
2014-04-01 Manuel Rego Casasnovas <rego@igalia.com>
[CSS Grid Layout] Enable runtime feature if feature flag is enabled
https://bugs.webkit.org/show_bug.cgi?id=130013
Reviewed by Simon Fraser.
Enable CSS Grid Layout runtime feature when ENABLE_CSS_GRID_LAYOUT flag is true.
* Shared/WebPreferencesStore.h:
2014-04-01 Anders Carlsson <andersca@apple.com>
Demote WKBackForwardListDidChangeNotification to SPI
https://bugs.webkit.org/show_bug.cgi?id=131059
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKBackForwardList.h:
* UIProcess/API/Cocoa/WKBackForwardList.mm:
* UIProcess/API/Cocoa/WKBackForwardListInternal.h:
* UIProcess/API/Cocoa/WKBackForwardListPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListInternal.h.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::LoaderClient::didChangeBackForwardList):
* WebKit2.xcodeproj/project.pbxproj:
2014-04-01 Andy Estes <aestes@apple.com>
[Cocoa] Add SPI to determine if a WKWebView is displaying a PDF
https://bugs.webkit.org/show_bug.cgi?id=131063
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isDisplayingPDF]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-04-01 Simon Fraser <simon.fraser@apple.com>
Remove some explicit template instantiations from logging code
https://bugs.webkit.org/show_bug.cgi?id=131065
Reviewed by Tim Horton.
No need to explicitly state template types.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::dumpChangedLayers):
2014-04-01 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Partial repaint is broken
https://bugs.webkit.org/show_bug.cgi?id=131056
Reviewed by Dean Jackson.
* Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::display):
We need to check if the repaint rects themselves cover the whole
layer's surface, not just their bounds. Otherwise, we'll optimize
out the back->front copy and end up not painting the whole layer.
2014-04-01 Anders Carlsson <andersca@apple.com>
Pass a WKNavigationAction to the create UIDelegate method
https://bugs.webkit.org/show_bug.cgi?id=131053
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/Cocoa/UIClient.h:
* UIProcess/Cocoa/UIClient.mm:
(WebKit::UIClient::setDelegate):
(WebKit::UIClient::createNewPage):
2014-04-01 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Remove the two finger pan gesture recognizer until it is actually implemented
https://bugs.webkit.org/show_bug.cgi?id=131009
Reviewed by Sam Weinig.
The two finger pan should not block the pinch gesture recognizer.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _twoFingerPanRecognized:]): Deleted.
2014-04-01 Anders Carlsson <andersca@apple.com>
Remove limits from WKBackForwardList getters
https://bugs.webkit.org/show_bug.cgi?id=131052
Reviewed by Beth Dakin.
* UIProcess/API/Cocoa/WKBackForwardList.h:
* UIProcess/API/Cocoa/WKBackForwardList.mm:
(-[WKBackForwardList backList]):
(-[WKBackForwardList forwardList]):
(-[WKBackForwardList backListCount]): Deleted.
(-[WKBackForwardList forwardListCount]): Deleted.
(-[WKBackForwardList backListWithLimit:]): Deleted.
(-[WKBackForwardList forwardListWithLimit:]): Deleted.
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backList):
(WebKit::WebBackForwardList::forwardList):
* UIProcess/WebBackForwardList.h:
2014-04-01 Anders Carlsson <andersca@apple.com>
Stub out the web process -> UI process message SPI
https://bugs.webkit.org/show_bug.cgi?id=131048
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _userContentController]):
(-[WKWebViewConfiguration _setUserContentController:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/_WKScriptMessage.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
* UIProcess/API/Cocoa/_WKScriptMessage.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
(-[_WKScriptMessage body]):
(-[_WKScriptMessage originatingWebView]):
* UIProcess/API/Cocoa/_WKScriptMessageHandler.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
* UIProcess/API/Cocoa/_WKScriptWorld.h:
* UIProcess/API/Cocoa/_WKUserContentController.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
* UIProcess/API/Cocoa/_WKUserContentController.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h.
(-[_WKUserContentController addScriptMessageHandler:name:world:]):
(-[_WKUserContentController removeScriptMessageHandler:]):
* WebKit2.xcodeproj/project.pbxproj:
2014-04-01 Andreas Kling <akling@apple.com>
Invalidate CFNetwork connection cache on memory pressure.
<https://webkit.org/b/131038>
Stop holding on to cached HTTP connections if we come under memory pressure.
Reviewed by Geoff Malloc-Garen.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformLowMemoryHandler):
2014-04-01 Anders Carlsson <andersca@apple.com>
Tweak WKPreferences API
https://bugs.webkit.org/show_bug.cgi?id=131047
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences init]):
(-[WKPreferences initWithUserDefaultsKeyPrefix:]):
(-[WKPreferences userDefaultsKeyPrefix]):
(-[WKPreferences initWithUserDefaultsPrefixKey:]): Deleted.
(-[WKPreferences userDefaultsPrefixKey]): Deleted.
2014-03-31 Simon Fraser <simon.fraser@apple.com>
Enable WEB_TIMING on Mac and iOS
https://bugs.webkit.org/show_bug.cgi?id=128064
Reviewed by Sam Weinig, Brent Fulgham.
Enable WEB_TIMING.
* Configurations/FeatureDefines.xcconfig:
2014-03-31 Simon Fraser <simon.fraser@apple.com>
[UI-side compositing] Fix animations, and add logging
https://bugs.webkit.org/show_bug.cgi?id=131011
Reviewed by Tim Horton.
UI-side animations were broken because GraphicsLayerCARemote::addAnimation()
never called the superclass, so fix.
Add logging for animations to the layer tree commit output.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::dumpProperty):
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):
* WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
(WebKit::GraphicsLayerCARemote::addAnimation):
2014-04-01 Zalan Bujtas <zalan@apple.com>
Build fix after r166582.
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
2014-04-01 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Transition class Image (and its dependencies) from int to float to enable subpixel positioned/sized images.
https://bugs.webkit.org/show_bug.cgi?id=130643
Reviewed by Simon Fraser.
This is in preparation to support subpixel positioned/sized background images. While 1x bitmap images can't take
subpixel sizing on hidpi resolutions, both generated and hidpi images can.
This patch does not change Image behavior in general as both position and size are still snapped to integral values.
No change in behavior.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeImage):
* UIProcess/API/efl/EwkView.cpp:
(EwkView::updateCursor):
2014-04-01 Joonghun Park <jh718.park@samsung.com>
[EFL][WK2] Fix and update the existing test case for ewk_database_manager_origins_async_get API
https://bugs.webkit.org/show_bug.cgi?id=131017
Reviewed by Gyuyoung Kim.
* UIProcess/API/efl/tests/test_ewk2_database_manager.cpp:
Fix memory leaks and errors caused by duplication of Ecore_Timer deletion
as well as update a naming style of local variable.
(EWK2DatabaseManagerTest::databaseOriginsCallback):
(TEST_F):
2014-04-01 Zan Dobersek <zdobersek@igalia.com>
Don't copy the children map in webkitWebViewBaseContainerForall
https://bugs.webkit.org/show_bug.cgi?id=131016
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseContainerForall): Avoid copying the GtkWidget-to-IntRect HashMap object
by transforming the iteration to a range-based for-loop over that HashMap's keys.
2014-04-01 Zan Dobersek <zdobersek@igalia.com>
[GTK] Don't copy the ResourceResponse object in webkitWebViewDecidePolicy
https://bugs.webkit.org/show_bug.cgi?id=131015
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewDecidePolicy): Avoid copying the ResourceResponce object returned by webkitURIResponseGetResourceResponse.
That function already returns a reference, so the return value should be stored accordingly.
2014-04-01 Eunmi Lee <eunmi15.lee@samsung.com>
[CoordinatedGraphics] Content scale factor should not be applied to draw contents when fixed layout is not used.
https://bugs.webkit.org/show_bug.cgi?id=130962
Reviewed by Gyuyoung Kim.
Delegating scaling is turned off when fixed layout is not used in the
coordinated graphics, so page scale factor is applied to the contents
directly.
In that case, we should not apply page scale factor to coordinated
graphics to draw contents and calculate visible content rect.
Currently, page scale factor is applied twice to the coordinated
graphics and contents, so result of scaling is abnormal.
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::transformToScene):
(WebKit::WebView::visibleContentsSize):
2014-04-01 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Rename ewk_application_cache_manager_delete{_all}
https://bugs.webkit.org/show_bug.cgi?id=131012
Reviewed by Gyuyoung Kim.
While discussing Bug 130577, we resulted that _clear and _xxx_del is better name for the EFL.
This patch will rename similar API in ewk_application_cache_manager.
In addition, fixed some typos in doxygen.
* UIProcess/API/efl/ewk_application_cache_manager.cpp:
(ewk_application_cache_manager_clear): Renamed from ewk_application_cache_manager_delete_all
(ewk_application_cache_manager_entries_for_origin_del): Renamed from ewk_application_cache_manager_delete
(ewk_application_cache_manager_delete_all): Deleted.
(ewk_application_cache_manager_delete): Deleted.
* UIProcess/API/efl/ewk_application_cache_manager.h:
* UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
(TEST_F):
2014-03-31 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix after r166553.
* UIProcess/API/gtk/WebKitSettings.cpp:
(_WebKitSettingsPrivate::_WebKitSettingsPrivate): Pass 'WebKit2.' as the second argument to WebPreferences::create().
2014-03-31 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Extract the control of page background out of color_set
https://bugs.webkit.org/show_bug.cgi?id=127539
Reviewed by Gyuyoung Kim.
EFL have a way to change the color using evas_object_color_set and we used it to change background.
But, We should not use it because the alpha value of color_set is used
for the transparancy of object itself including background and contents.
This patch added ewk_view_bg_color_{get|set} to change the background color.
* UIProcess/API/C/efl/WKViewEfl.cpp:
Extracted controls of page background out of color_set.
color_set will be only used for the opacity of whole contents.
(WKViewSetBackgroundColor): Added to share page background color.
(WKViewGetBackgroundColor):
* UIProcess/API/C/efl/WKViewEfl.h:
* UIProcess/API/efl/EwkView.cpp:
(EwkView::handleEvasObjectColorSet):
* UIProcess/API/efl/ewk_view.cpp:
Removed ewk_view_draws_page_background_set which just control whether to draw background.
ewk_view_bg_color_set will conver it.
(ewk_view_bg_color_set):
(ewk_view_bg_color_get):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp: Added simple test case.
* UIProcess/efl/WebViewEfl.cpp:
(WebKit::WebViewEfl::setViewBackgroundColor):
(WebKit::WebViewEfl::viewBackgroundColor):
* UIProcess/efl/WebViewEfl.h:
2014-03-31 Joonghun Park <jh718.park@samsung.com>
[EFL][WK2]Implement ewk APIs of web local storage which have deletion functions of the local storage entries
https://bugs.webkit.org/show_bug.cgi?id=130577
Reviewed by Gyuyoung Kim.
* UIProcess/API/efl/ewk_storage_manager.cpp:
(ewk_storage_manager_entries_clear):
(ewk_storage_manager_entries_for_origin_del):
* UIProcess/API/efl/ewk_storage_manager.h:
* UIProcess/API/efl/ewk_storage_manager_private.h:
(EwkStorageManager::wkStorageManager):
* UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
adding and updating API unittest and fixing memory leak of the existing test case
(EWK2StorageManagerTest::getStorageOriginsCallback):
(EWK2StorageManagerTest::checkOrigin):
(EWK2StorageManagerTest::getOrigin):
(TEST_F):
2014-03-31 Anders Carlsson <andersca@apple.com>
Rename policy enums to match the delegate methods
https://bugs.webkit.org/show_bug.cgi?id=131002
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
(NS_ENUM):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::PolicyClient::decidePolicyForResponse):
2014-03-31 Anders Carlsson <andersca@apple.com>
Add more preferences
https://bugs.webkit.org/show_bug.cgi?id=131001
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences isJavaScriptEnabled]):
(-[WKPreferences setJavaScriptEnabled:]):
(-[WKPreferences javaScriptCanOpenWindowsAutomatically]):
(-[WKPreferences setJavaScriptCanOpenWindowsAutomatically:]):
(-[WKPreferences suppressesIncrementalRendering]):
(-[WKPreferences setSuppressesIncrementalRendering:]):
(-[WKPreferences isJavaEnabled]):
(-[WKPreferences setJavaEnabled:]):
(-[WKPreferences arePlugInsEnabled]):
(-[WKPreferences setPlugInsEnabled:]):
2014-03-31 Tim Horton <timothy_horton@apple.com>
Fix the build.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2014-03-31 Simon Fraser <simon.fraser@apple.com>
Fix the iOS build.
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeHost.h:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::setLayerID):
(WebKit::RemoteLayerTreeHost::layerID):
(WebKit::RemoteLayerTreeHost::createLayer):
2014-03-31 Anders Carlsson <andersca@apple.com>
Add a couple of iOS specific preferences
https://bugs.webkit.org/show_bug.cgi?id=130999
Reviewed by Simon Fraser.
* Shared/WebPreferencesStore.h:
* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences allowsInlineMediaPlayback]):
(-[WKPreferences setAllowsInlineMediaPlayback:]):
(-[WKPreferences mediaPlaybackRequiresUserAction]):
(-[WKPreferences setMediaPlaybackRequiresUserAction:]):
(-[WKPreferences mediaPlaybackAllowsAirPlay]):
(-[WKPreferences setMediaPlaybackAllowsAirPlay:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2014-03-31 Anders Carlsson <andersca@apple.com>
Add a new -[WKPreferences initWithUserDefaultsPrefixKey:] initializer
https://bugs.webkit.org/show_bug.cgi?id=130996
Reviewed by Simon Fraser.
Add a "key prefix" to the WebKit::WebPreferences create function, so we can use a different
key prefix ("WebKit") for the modern API and not pollute the user defaults namespace with
the old key prefix ("WebKit2.").
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesCreate):
(WKPreferencesCreateWithIdentifier):
* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences init]):
(-[WKPreferences initWithUserDefaultsPrefixKey:]):
(-[WKPreferences userDefaultsPrefixKey]):
* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::WebPageGroup):
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::WebPreferences):
* UIProcess/WebPreferences.h:
(WebKit::WebPreferences::create):
* UIProcess/mac/WebPreferencesMac.mm:
(WebKit::makeKey):
(WebKit::setStringValueIfInUserDefaults):
(WebKit::setBoolValueIfInUserDefaults):
(WebKit::setUInt32ValueIfInUserDefaults):
(WebKit::setDoubleValueIfInUserDefaults):
(WebKit::WebPreferences::platformInitializeStore):
(WebKit::WebPreferences::platformUpdateStringValueForKey):
(WebKit::WebPreferences::platformUpdateBoolValueForKey):
(WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
(WebKit::WebPreferences::platformUpdateDoubleValueForKey):
(WebKit::WebPreferences::platformUpdateFloatValueForKey):
2014-03-31 Pratik Solanki <psolanki@apple.com>
Remove duplicate entries in Derived Sources.
Rubber-stamped by Anders Carlsson.
* WebKit2.xcodeproj/project.pbxproj:
2014-03-31 Tim Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
2014-03-31 Tim Horton <timothy_horton@apple.com>
Fix the build.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
2014-03-31 Anders Carlsson <andersca@apple.com>
Rename -[WKNavigationAction destinationFrame] to -[WKNavigationAction targetFrame]
https://bugs.webkit.org/show_bug.cgi?id=130994
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKNavigationAction.h:
* UIProcess/API/Cocoa/WKNavigationAction.mm:
(-[WKNavigationAction description]):
(-[WKNavigationAction targetFrame]):
(-[WKNavigationAction setTargetFrame:]):
(-[WKNavigationAction destinationFrame]): Deleted.
(-[WKNavigationAction setDestinationFrame:]): Deleted.
* UIProcess/API/Cocoa/WKNavigationActionInternal.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
2014-03-31 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
https://bugs.webkit.org/show_bug.cgi?id=130768
<rdar://problem/16421471>
Reviewed by Benjamin Poulain.
* Shared/mac/RemoteLayerBackingStore.h:
Make RemoteLayerBackingStore noncopyable.
Add flush(), which synchronously flushes painting operations on the underlying backing store.
Add storage for the CGContext that needs to be flushed, and ensure that it is flushed before we paint again.
* Shared/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::display):
(RemoteLayerBackingStore::drawInContext):
Don't flush the context immediately after painting.
(RemoteLayerBackingStore::flush):
Flush the current front surface/buffer's context.
Clear the new pending-flush members.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::flushBackingStoreChangesInTransaction):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
Crawl through all of the valid changed backing stores in the transaction and flush them.
Reset changed properties after encoding the commit.
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):
(WebKit::RemoteLayerTreeTransaction::changedLayers):
(WebKit::RemoteLayerTreeTransaction::changedLayerProperties):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::layerPropertiesChanged):
(WebKit::dumpChangedLayers):
Instead of storing a copy of the LayerProperties struct for each changed layer
while building the transaction in the Web process, store a list of changed layers,
and directly encode the commit from those layers' LayerProperties. This provides a few benefits:
- We avoid copying LayerProperties for every changed layer, every commit
- We can make RemoteLayerBackingStore noncopyable
- We can walk the changed layers after building the transaction
in order to flush backing store, and actually affect the layers'
own RemoteLayerBackingStore instead of a copy.
The UI process will still generate a LayerPropertiesMap at decode time.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
Don't copy the LayerProperties struct for the debug overlay. Instead,
adjust the properties which the debug overlay whacks directly on the layer,
after applying the normal LayerProperties.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::recursiveBuildTransaction):
Don't reset changed layer properties in the middle of building a transaction. Instead,
RemoteLayerTreeDrawingArea::flushLayers() will reset all the flags on all changed layers
after the commit is encoded.
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
(WebKit::PlatformCALayerRemote::properties):
2014-03-31 Simon Fraser <simon.fraser@apple.com>
[UI-side compositing] Proxy animations to the UI process
https://bugs.webkit.org/show_bug.cgi?id=130946
Reviewed by Tim Horton.
Add encoding/decoding of TimingFunctions. Add encoding support
for HashSet.
Add PlatformCAAnimationRemote and have PlatformCALayerRemote allow
animations now. PlatformCALayerRemote's properties are defined in the class,
as is the encoding/decoding (much cleaner than having them in the transaction
class I think).
Add support for the "animationDidStart" callback and sending this back to the
web process. This involves a HashMap of layerID->WKAnimationDelegate stored
on the RemoteLayerTreeHost, and a message send via the DrawingArea. On the
other side, RemoteLayerTreeContext stores a HashMap of layerID->PlatformCALayerRemote*
for layers which have just started animations, which is used to get the
PlatformCALayer* to call animationDidStart() on.
This requires that the RemoteLayerTreeHost* be passed down into property application,
and that the RemoteLayerTreeHost have a reference to the drawing area.
To every CALayer in the UI process we -setValue:forKey: to track the PlatformLayerID,
so we can get back to it in order to dispatch "animationDidStart".
Replace some "using namespace WebKit" with "namespace WebKit { }".
* Platform/IPC/ArgumentCoders.h:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<LinearTimingFunction>::encode):
(IPC::ArgumentCoder<LinearTimingFunction>::decode):
(IPC::ArgumentCoder<CubicBezierTimingFunction>::encode):
(IPC::ArgumentCoder<CubicBezierTimingFunction>::decode):
(IPC::ArgumentCoder<StepsTimingFunction>::encode):
(IPC::ArgumentCoder<StepsTimingFunction>::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/RemoteLayerBackingStore.mm:
* Shared/mac/RemoteLayerTreePropertyApplier.h:
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::layerID):
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):
(WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
* UIProcess/mac/RemoteLayerTreeHost.h:
(WebKit::RemoteLayerTreeHost::animationDelegates):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::RemoteLayerTreeHost):
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
(WebKit::RemoteLayerTreeHost::animationDidStart):
(WebKit::RemoteLayerTreeHost::layerID):
(WebKit::RemoteLayerTreeHost::createLayer):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::acceleratedAnimationDidStart):
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
(WebKit::GraphicsLayerCARemote::createPlatformCAAnimation):
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.h: Added.
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: Added.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
(WebKit::PlatformCALayerRemote::animationStarted):
(WebKit::PlatformCALayerRemote::addAnimationForKey):
(WebKit::PlatformCALayerRemote::removeAnimationForKey):
(WebKit::PlatformCALayerRemote::animationForKey):
(PlatformCALayerRemote::recursiveBuildTransaction): Deleted.
(PlatformCALayerRemote::addAnimationForKey): Deleted.
(PlatformCALayerRemote::removeAnimationForKey): Deleted.
(PlatformCALayerRemote::animationForKey): Deleted.
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
(WebKit::RemoteLayerTreeContext::willStartAnimationOnLayer):
(WebKit::RemoteLayerTreeContext::animationDidStart):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidStart):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
2014-03-31 Tim Horton <timothy_horton@apple.com>
Double-buffer RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=130990
Reviewed by Simon Fraser.
We'll keep a front and back buffer for each surface; the front is generally currently
being displayed in the UI process, and the back is the one we'll paint into.
Swap the two surfaces each time we paint; since we synchronize with the UI process,
the old front surface will generally be out-of-use by the render server by the time
we paint again. However, since render server commits are asynchronous and we have
no way to syncronize with them yet, we have to check if the (swapped to front) back buffer is in use,
and create a new front buffer if it is.
Triple-buffering would solve this problem, as would synchronization with the render server,
as would a pool of surfaces - we will revisit these solutions in future patches.
* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::ensureBackingStore):
(RemoteLayerBackingStore::clearBackingStore):
Factor clearBackingStore() out of ensureBackingStore() and display().
(RemoteLayerBackingStore::display):
Swap buffers. Since m_backSurface will hold on to the back surface's CGContext,
we don't need to worry about tearing down the image first anymore.
Don't worry about creating a back image (nor copying it into the front image)
if we're going to paint the whole layer.
(RemoteLayerBackingStore::drawInContext):
Fix some names.
(RemoteLayerBackingStore::applyBackingStoreToLayer):
Reduce duplication.
(RemoteLayerBackingStore::createImageForFrontBuffer): Deleted.
2014-03-31 Tim Horton <timothy_horton@apple.com>
Synchronize Web process remote layer tree commits with CoreAnimation commits in the UI process
https://bugs.webkit.org/show_bug.cgi?id=130984
Reviewed by Simon Fraser.
There's no reason for the Web process to paint faster than the UI process
can apply to and commit the CoreAnimation layer tree.
Also, once we get proper double-buffering and purgeable back buffers, we
will need the ability to make some assumptions about in-use surfaces.
Unfortunately, we can't actually tell when the render server commits,
as this is an asynchronous operation in a process we don't control, so
for now, this is only an approximation.
This also means that the assumptions we would like to make won't be
strong guarantees yet.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
When we commit, install a run loop observer to fire immediately after CoreAnimation commits.
(WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
Fix a typo ('cmponents').
(WebKit::coreAnimationDidCommitLayersCallback):
(WebKit::RemoteLayerTreeDrawingAreaProxy::scheduleCoreAnimationLayerCommitObserver):
(WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers):
When CA commits, send a message to the Web process letting it know that we
swapped to the new backing store.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
(WebKit::RemoteLayerTreeDrawingArea::didUpdate):
Defer remote layer tree commits until we get didUpdate() from the UI process.
2014-03-31 Dean Jackson <dino@apple.com>
Remove WEB_ANIMATIONS
https://bugs.webkit.org/show_bug.cgi?id=130989
Reviewed by Simon Fraser.
Remove this feature flag until we plan to implement.
* Configurations/FeatureDefines.xcconfig:
2014-03-31 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Hook up scroll events for accelerated overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=130976
Reviewed by Tim Horton.
When an accelerated overflow:scroll is scrolled in the UI process,
tell the WebProcess that the scroll happened to update RenderLayer
state and fire events.
Add a WKOverflowScrollViewDelegate which is set as the delegate of
UIScrollViews, owned by ScrollingTreeOverflowScrollingNodeIOS, and propagates
-scrollViewDidScroll: messages to ScrollingTree::scrollPositionChangedViaDelegatedScrolling(),
which updates child layers and then, via RemoteScrollingTree::scrollingTreeNodeDidScroll,
tells the RemoteScrollingCoordinator which sends a message to the WebProcess.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll): Name change
to try to reduce confusion.
(WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged): Deleted.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
* UIProcess/Scrolling/RemoteScrollingTree.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(-[WKOverflowScrollViewDelegate initWithScrollingTreeNode:WebKit::]):
(-[WKOverflowScrollViewDelegate scrollViewDidScroll:]):
(-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndScrollingAnimation:]):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateBeforeChildren):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewDidScroll):
* WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode): No need for
rounding.
2014-03-29 Simon Fraser <simon.fraser@apple.com>
Fix scrolling on OS X with UI-side compositing
https://bugs.webkit.org/show_bug.cgi?id=130930
Reviewed by Tim Horton.
On iOS, we rely on visible rect updates to propagate scroll offset
changes to the WebProcess. RemoteScrollingCoordinatorProxy was thus hardcoded
to bail from scrollPositionChanged() when the scrolled node was the root node,
but this broke OS X. Fix by adding a behavior flag to RemoteScrollingCoordinatorProxy.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::RemoteScrollingCoordinatorProxy):
(WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
(WebKit::RemoteScrollingCoordinatorProxy::setPropagatesMainFrameScrolls):
(WebKit::RemoteScrollingCoordinatorProxy::propagatesMainFrameScrolls):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage):
2014-03-31 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Disable tile cohort retention for now
https://bugs.webkit.org/show_bug.cgi?id=130926
<rdar://problem/16465413>
Reviewed by Simon Fraser.
* Shared/WebPreferencesStore.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Add a preference for temporary tile cohort retention (essentially, provide a setting
that means that we will never retain tiles at all once they leave the tile coverage rect).
Defaults to true to maintain existing behavior, except for iOS WebKit2, where
it defaults to false because we don't have the requisite support for purgeable tiles yet.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
2014-03-31 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Buildfix after r166497.
Reviewed by Csaba Osztrogonác.
* UIProcess/API/efl/ewk_context.h: Missing EAPI added.
2014-03-31 Martin Robinson <mrobinson@igalia.com>
[GTK] Use PROJECT_VERSION_* instead of WEBKIT_*_VERSION
https://bugs.webkit.org/show_bug.cgi?id=130936
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitVersion.h.in: Use PROJECT_VERSION_* macros instead of the Autotools ones.
2014-03-31 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
[EFL][WK2] Add ewk APIs to control TLS error policy on WebContext.
https://bugs.webkit.org/show_bug.cgi?id=129740
Reviewed by Gyuyoung Kim.
* PlatformEfl.cmake:
Added the new SSL test.
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::ignoreTLSErrors):
(EwkContext::setIgnoreTLSErrors):
(ewk_context_ignore_tls_errors_get):
(ewk_context_ignore_tls_errors_set):
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/ewk_context_private.h:
Added the API functions.
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
(EWK2UnitTestServer::EWK2UnitTestServer):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:
Extended the unit test server to handle TLS.
* UIProcess/API/efl/tests/test_ewk2_ssl.cpp:
Added tests to check the TLS policy API.
2014-03-31 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK2 plugin process binary name after r166492.
* PlatformGTK.cmake: Fix typo.
2014-03-31 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com>
Remove hostThisRegister() and hostThisValue()
https://bugs.webkit.org/show_bug.cgi?id=130895
Reviewed by Geoffrey Garen.
Removed hostThisRegister() and hostThisValue() and instead use thisArgumentOffset() and thisValue() respectively.
* WebProcess/Plugins/Netscape/JSNPMethod.cpp:
(WebKit::callMethod):
2014-03-31 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add support for GTK3 plugins
https://bugs.webkit.org/show_bug.cgi?id=130599
Reviewed by Martin Robinson.
We currently have a gtk2 based plugin process mainly for flash
and a few other plugins that use GTK2, but many other plugins
don't even use gtk at all. This patch builds a lighter plugin
process based on GTK3, used by default for all the plugins expect
the ones requiring GTK2. And of course the default plugin process
supports GTK3 plugins.
* CMakeLists.txt: Add common rules to build the default plugin process.
* PlatformEfl.cmake: Remove common cmake code that is now in CMakeLists.txt.
* PlatformGTK.cmake: Rename WebKitPluginProcess to
WebKitPluginProcess2 and add the platform specific rules to build
the default plugin process.
* Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
(WebKit::NetscapePluginModule::getPluginInfoForLoadedPlugin):
Check if the loaded plugin module uses GTK2.
(WebKit::NetscapePluginModule::getPluginInfo): Set requiresGtk2 accordingly.
(WebKit::NetscapePluginModule::scanPlugin): Write "requires-gtk2"
line to stdout if the plugin requires GTK2.
* Shared/Plugins/PluginModuleInfo.h: Add requiresGtk2 boolean member.
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess): Use the
WebKitPluginProcess2 executable when the plugin requires GTK2.
* UIProcess/Plugins/PluginProcessProxy.h: Add requiresGtk2 boolean
member to RawPluginMetaData struct.
* UIProcess/Plugins/gtk/PluginInfoCache.cpp: Bump the cache schema version.
(WebKit::PluginInfoCache::getPluginInfo): Read also requires-gtk2
key from the cache.
(WebKit::PluginInfoCache::updatePluginInfo): Save also
requires-gtk2 key in the cache.
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::platformGetLaunchOptions): Add an
extra initialization data parameter if the plugin requires GTK2.
(WebKit::PluginProcessProxy::scanPlugin): Check if "requires-gtk2"
was written to stdout.
2014-03-30 Andy Estes <aestes@apple.com>
[Cocoa] Add an originatingWebView property to _WKDownload
https://bugs.webkit.org/show_bug.cgi?id=130945
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]): Passed self to WKView's initializer.
* UIProcess/API/Cocoa/_WKDownload.h: Declared originatingWebView as a weak, readonly property.
* UIProcess/API/Cocoa/_WKDownload.mm:
(-[_WKDownload originatingWebView]):
(-[_WKDownload setOriginatingWebView:]):
* UIProcess/API/Cocoa/_WKDownloadInternal.h: Re-declared originatingWebView as readwrite so that
PageClientImpl can call setOriginatingWebView:. Removed some dead code.
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:webView:]): Updated to accept a webView parameter.
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): Passed nil for the webView parameter.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/Cocoa/DownloadClient.mm:
(WebKit::DownloadClient::decideDestinationWithSuggestedFilename): Ensured allowOverwrite is initialized.
* UIProcess/PageClient.h: Included handleDownloadRequest() on all platforms.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedPolicyDecision): Ditto.
(WebKit::WebPageProxy::handleDownloadRequest): Ditto.
* UIProcess/WebPageProxy.h: Ditto.
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::handleDownloadRequest): Called -[_WKDownload setOriginatingWebView:].
* UIProcess/mac/PageClientImpl.h: Added a m_webView member variable.
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::PageClientImpl): Asserted that m_webView is nil if WK API isn't enabled.
(WebKit::PageClientImpl::handleDownloadRequest): Called -[_WKDownload setOriginatingWebView:].
2014-03-29 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166434.
https://bugs.webkit.org/show_bug.cgi?id=130938
Caused crashes and other failures on cache tests (Requested by
ap on #webkit).
Reverted changeset:
"Web Replay: add page-level setting to bypass the MemoryCache"
https://bugs.webkit.org/show_bug.cgi?id=130728
http://trac.webkit.org/changeset/166434
2014-03-28 Anders Carlsson <andersca@apple.com>
Uncaught NSExceptions should crash the web process
https://bugs.webkit.org/show_bug.cgi?id=130923
<rdar://problem/16463751>
Reviewed by Dan Bernstein.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-03-28 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r166441 and r166443.
Missing PLATFORM(COCOA) guards added.
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::evaluate):
* WebProcess/Plugins/PluginProxy.cpp:
* WebProcess/Plugins/PluginProxy.h:
2014-03-28 Stephanie Lewis <slewis@apple.com>
Don't prevent AppSleep from sync messages.
https://bugs.webkit.org/show_bug.cgi?id=130747.
Reviewed by Anders Carlsson.
We think sync messages only need to happen full throttle when the plugin is visible,
the user is interacting with the plugin, or audio is playing. Since we already
take assertions for all these cases the assertion in sync messages doesn’t provide
any value. Since it can keep the PluginProcess awake in other instances remove it.
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::didReceiveSyncMessage):
2014-03-28 Stephanie Lewis <slewis@apple.com>
Stop waking up the web process in the background because of plugin activity.
Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.
Reviewed by Anders Carlsson.
Plugin activity in the background can constantly wake up web processes. This is only
necessary when audio is playing to support web apps like Pandora and youtube playing
in the background. Use a new api in CoreAudio to see if there is audio playing in
the PluginProcess.
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::PluginProcess): Add a AudioHardwareListener
(WebKit::PluginProcess::createWebProcessConnection): tell web process current state
(WebKit::PluginProcess::audioHardwareDidBecomeActive): respond to audio hardware notifications
(WebKit::PluginProcess::audioHardwareDidBecomeInactive):
* PluginProcess/PluginProcess.h:
* PluginProcess/WebProcessConnection.cpp: tell WebProcess when audio state in PluginProcess
changes.
(WebKit::WebProcessConnection::audioHardwareDidBecomeActive):
(WebKit::WebProcessConnection::audioHardwareDidBecomeInactive):
* PluginProcess/WebProcessConnection.h:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
Only invoke pageThrottler activity when playing audio
(WebKit::NPRuntimeObjectMap::evaluate):
* WebProcess/Plugins/Plugin.h: add function to get audio state
(WebKit::Plugin::audioIsPlayingInPluginProcess):
* WebProcess/Plugins/PluginProcessConnection.cpp: store audio state
(WebKit::PluginProcessConnection::PluginProcessConnection):
(WebKit::PluginProcessConnection::didReceiveMessage):
(WebKit::PluginProcessConnection::audioHardwareDidBecomeActive):
(WebKit::PluginProcessConnection::audioHardwareDidBecomeInactive):
* WebProcess/Plugins/PluginProcessConnection.h:
(WebKit::PluginProcessConnection::audioIsPlaying):
* WebProcess/Plugins/PluginProcessConnection.messages.in:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::audioIsPlayingInPluginProcess):
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::audioIsPlayingInPluginProcess):
* WebProcess/Plugins/PluginView.h:
2014-03-28 Stephanie Lewis <slewis@apple.com>
Have the plugin process track visibility of it’s plugin and sleep when none
are visible.
Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.
https://bugs.webkit.org/show_bug.cgi?id=130694
Reviewed by Anders Carlsson.
Currently AppSleep is enabled on the PluginProcess based on web page visibility.
Add visibility tracking to plugins and move the decision to AppSleep into the the
PluginProcess
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::PluginProcess): Add a new activity for visible plugins
(WebKit::PluginProcess::pluginsForWebProcessDidBecomeVisible): take an activity
assertion if any web processes have a visible plugin.
(WebKit::PluginProcess::pluginsForWebProcessDidBecomeHidden):
* PluginProcess/PluginProcess.h:
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::removePluginControllerProxy): remove plugin from
visible plugins when destroying it
(WebKit::WebProcessConnection::pluginDidBecomeVisible):
(WebKit::WebProcessConnection::pluginDidBecomeHidden): track which plugins are
visible for each web process
* PluginProcess/WebProcessConnection.h:
* PluginProcess/mac/PluginControllerProxyMac.mm:
(WebKit::PluginControllerProxy::windowVisibilityChanged): notify WebProcessConnection
when visibility changed.
* UIProcess/WebContext.h:
* UIProcess/mac/WebContextMac.mm: instead of tracking plugin app sleep state on the web pref.
and visibility state, just use the web pref.
(WebKit::WebContext::updateProcessSuppressionState):
(WebKit::WebContext::processSuppressionPreferenceIsEnabledForAllContexts):
2014-03-28 Brian Burg <bburg@apple.com>
Web Replay: add page-level setting to bypass the MemoryCache
https://bugs.webkit.org/show_bug.cgi?id=130728
Reviewed by Timothy Hatcher.
* UIProcess/APISession.cpp:
(API::generateID): update the base ID for generating unique sessions.
2014-03-28 Cody Krieger <cjk@apple.com>
Add willSubmitForm callback support to WKWebProcessPlugInFormDelegatePrivate.
https://bugs.webkit.org/show_bug.cgi?id=130875
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h:
Add -_webProcessPlugInBrowserContextController:willSubmitForm:toFrame:fromFrame:withValues:
to the WKWebProcessPlugInFormDelegatePrivate protocol.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
Wire up the willSubmitForm() callback to the new
WKWebProcessPlugInFormDelegatePrivate method.
2014-03-28 Alexey Proskuryakov <ap@apple.com>
[Mac] Enable async text input implementation
https://bugs.webkit.org/show_bug.cgi?id=130856
Reviewed by Sam Weinig.
* UIProcess/API/mac/WKView.mm: (-[WKView _interpretKeyEvent:completionHandler:]):
Temporarily work around <rdar://16393434>.
2014-03-28 Alexey Proskuryakov <ap@apple.com>
Move sync CancelComposition message under an ifdef
https://bugs.webkit.org/show_bug.cgi?id=130908
Reviewed by Enrica Casucci.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::cancelComposition): Deleted.
* UIProcess/mac/WebPageProxyMac.mm:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
2014-03-28 Alexey Proskuryakov <ap@apple.com>
[iOS] Don't cancel composition on selection change
https://bugs.webkit.org/show_bug.cgi?id=130909
Reviewed by Enrica Casucci.
Fixing a recent regression from bug 130727.
* WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection):
2014-03-28 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
[WK2] Removed unused method logChannelByName.
https://bugs.webkit.org/show_bug.cgi?id=130897
Reviewed by Anders Carlsson.
* Platform/Logging.cpp:
(WebKit::logChannelByName): Deleted.
* Platform/Logging.h:
2014-03-28 Alexey Proskuryakov <ap@apple.com>
Eliminate a sync cancelComposition call in WebPageProxy::editorStateChanged
https://bugs.webkit.org/show_bug.cgi?id=130727
Reviewed by Enrica Casucci.
Added a separate CompositionWasCanceled IPC call, with which WebProcess can tell
UIProcess that it should notify an input method of canceled composition. There are
a lot of incorrect edge cases where we don't call it correctly, but this was true
in the old implementation too (for different edge cases).
This change only affects iOS and async NSTextInputClient code path on Mac. I don't
want to change sync NSTextInputClient code path unless absolutely necessary.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::editorStateChanged):
(WebKit::WebPageProxy::compositionWasCanceled):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::insertText):
(WebKit::WebPageProxy::executeKeypressCommands):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChangeSelection):
2014-03-28 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Running minibrowser with url crashes in debug build
https://bugs.webkit.org/show_bug.cgi?id=130492
Reviewed by Martin Robinson.
Use the ResourceRequest(const URL& url) constructor, instead of the
one taking a String, to call WebPageProxy::loadRequest(), so we
ensure that the passed URI is correctly constructed.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_load_uri): Create an URL out of a SoupURI and
use that to create a ResourceRequest to pass to loadRequest().
2014-03-27 Pratik Solanki <psolanki@apple.com>
[iOS WebKit2] Tweak cache sizes for iOS
https://bugs.webkit.org/show_bug.cgi?id=130871
Reviewed by Sam Weinig.
Bring over the tweaks we had made to memory cache size for WebKit1 on iOS to WebKit2. These
were made per findings in <rdar://8611638>.
* Shared/CacheModel.cpp:
(WebKit::calculateCacheSizes):
2014-03-27 Jinwoo Song <jinwoo7.song@samsung.com>
[WK2][EFL] Fix wrong parameter name in ewk_view_user_agent_set()
https://bugs.webkit.org/show_bug.cgi?id=130888
Reviewed by Gyuyoung Kim.
* UIProcess/API/efl/ewk_view.h:
2014-03-27 Alexey Proskuryakov <ap@apple.com>
Confirm composition in resignFirstResponder, don't cancel it
https://bugs.webkit.org/show_bug.cgi?id=130852
Reviewed by Darin Adler.
* UIProcess/API/mac/WKView.mm: (-[WKView resignFirstResponder]):
2014-03-27 Pratik Solanki <psolanki@apple.com>
[iOS WebKit2] Don't pass disk cache directory path on iOS
https://bugs.webkit.org/show_bug.cgi?id=130862
Reviewed by Sam Weinig.
The diskPath passed to NSURLCache initializer is treated differently on Mac and iOS. Just
pass nil for now until we sort out the API.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-03-27 Pratik Solanki <psolanki@apple.com>
[iOS WebKit2] Share network process code between iOS and Mac
https://bugs.webkit.org/show_bug.cgi?id=130861
Reviewed by Sam Weinig.
Implement network process functions for iOS by moving common code from NetworkProcessMac.mm
to a new shared file NetworkProcessCocoa.mm and sharing between iOS and Mac.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm: Added.
(WebKit::NetworkProcess::platformLowMemoryHandler):
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
Common initialization code for iOS and Mac.
(WebKit::memorySize):
(WebKit::volumeFreeSize):
(WebKit::NetworkProcess::platformSetCacheModel):
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::initializeProcess):
Remove unnecessary #if PLATFORM(IOS).
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
* WebKit2.xcodeproj/project.pbxproj:
2014-03-27 Enrica Casucci <enrica@apple.com>
Add support for AirPlay picker in WK2 for iOS.
https://bugs.webkit.org/show_bug.cgi?id=130855
<rdar://problem/15349859>
Reviewed by Joseph Pecoraro and Benjamin Poulain.
Adds support to display the airplay picker for iPhone and iPad
in WK2.
The picker on iPad is displayed next to the airplay button.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showAirPlayRoutePicker):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showAirPlayRoutePicker:fromRect:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::showAirPlayRoutePicker):
* UIProcess/ios/forms/WKAirPlayRoutePicker.h: Added.
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm: Added.
(-[WKAirPlayRoutePicker initWithView:]):
(-[WKAirPlayRoutePicker dealloc]):
(-[WKAirPlayRoutePicker popoverControllerDidDismissPopover:]):
(-[WKAirPlayRoutePicker _presentAirPlayPopoverAnimated:fromRect:]):
(-[WKAirPlayRoutePicker _windowWillRotate:]):
(-[WKAirPlayRoutePicker _windowDidRotate:]):
(-[WKAirPlayRoutePicker _dismissAirPlayRoutePickerIPad]):
(-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]):
(-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):
(-[WKAirPlayRoutePicker show:fromRect:]):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::showAirPlayRoutePicker):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::touchEvent):
(WebKit::WebPage::touchEventSyncForTesting):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rectForElementAtInteractionLocation):
(WebKit::WebPage::handleTap):
2014-03-27 Benjamin Poulain <bpoulain@apple.com>
[WK2][iOS] <rdar://problem/16414684> WKWebView should draw a white background before the page loads
https://bugs.webkit.org/show_bug.cgi?id=130873
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
2014-03-27 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Compute a good exposed rect when scaling WKContentView
https://bugs.webkit.org/show_bug.cgi?id=130761
Reviewed by Simon Fraser.
Add a simple heuristic to improve tiling while zooming. In theory we could take the zoom
center and scaleRate to split the speed between scrolling and pinching. In practice,
zoom is transitory and is not as predictable as scrolling, so this patch just does a very
simple heuristic:
-When zooming in, do not expand coverage.
-When zooming out, add half a tile size on every side.
* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::timestamp):
(WebKit::VisibleContentRectUpdateInfo::horizontalVelocity):
(WebKit::VisibleContentRectUpdateInfo::verticalVelocity):
(WebKit::VisibleContentRectUpdateInfo::scaleChangeRate):
* UIProcess/ios/WKContentView.mm:
(WebKit::HistoricalVelocityData::VelocityData::VelocityData):
(WebKit::HistoricalVelocityData::velocityForNewData):
(WebKit::HistoricalVelocityData::append):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::adjustExposedRectForBoundedScale):
When zooming past the maximum size, adjust the exposed rect to continue tiling the area
at maximum size. Otherwise, we tile a tiny area, and have to retile larger when the animation
pull back the view to maximum scale.
(WebKit::adjustVelocityDataForBoundedScale):
Since we do not split the velocity from scrolling from the scaling, just clear the velocity when zooming.
Also clear the scaleChangeRate when the scale is out of bounds. There is no reason to add tiles for
temporary state.
(WebKit::WebPage::updateVisibleContentRects):
2014-03-27 Anders Carlsson <andersca@apple.com>
Add _ prefix to WKRemoteObjectRegistery and WKRemoteObjectInterface
https://bugs.webkit.org/show_bug.cgi?id=130868
Reviewed by Sam Weinig.
* Shared/API/Cocoa/RemoteObjectRegistry.h:
* Shared/API/Cocoa/RemoteObjectRegistry.mm:
(WebKit::RemoteObjectRegistry::RemoteObjectRegistry):
* Shared/API/Cocoa/WKRemoteObject.h:
* Shared/API/Cocoa/WKRemoteObject.mm:
(-[WKRemoteObject _initWithObjectRegistry:interface:]):
* Shared/API/Cocoa/WKRemoteObjectCoder.h:
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:WebKit::]):
* Shared/API/Cocoa/WKRemoteObjectInterface.h:
* Shared/API/Cocoa/WKRemoteObjectInterface.mm:
(isContainerClass): Deleted.
(propertyListClasses): Deleted.
(allowedArgumentClassesForMethod): Deleted.
(initializeAllowedArgumentClasses): Deleted.
(-[WKRemoteObjectInterface initWithProtocol:identifier:]): Deleted.
(+[WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]): Deleted.
(-[WKRemoteObjectInterface description]): Deleted.
(classesForSelectorArgument): Deleted.
(-[WKRemoteObjectInterface classesForSelector:argumentIndex:]): Deleted.
(-[WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]): Deleted.
(methodArgumentTypeEncodingForSelector): Deleted.
(-[WKRemoteObjectInterface _methodSignatureForSelector:]): Deleted.
(-[WKRemoteObjectInterface _allowedArgumentClassesForSelector:]): Deleted.
* Shared/API/Cocoa/WKRemoteObjectRegistry.h:
* Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
(-[WKRemoteObjectRegistry registerExportedObject:interface:]): Deleted.
(-[WKRemoteObjectRegistry unregisterExportedObject:interface:]): Deleted.
(-[WKRemoteObjectRegistry remoteObjectProxyWithInterface:]): Deleted.
(-[WKRemoteObjectRegistry _initWithMessageSender:IPC::]): Deleted.
(-[WKRemoteObjectRegistry _invalidate]): Deleted.
(-[WKRemoteObjectRegistry _sendInvocation:interface:]): Deleted.
(-[WKRemoteObjectRegistry WebKit::]): Deleted.
(-[WKRemoteObjectRegistry _invokeMethod:]): Deleted.
(-[WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]): Deleted.
* Shared/API/Cocoa/_WKRemoteObjectInterface.h: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.h.
* Shared/API/Cocoa/_WKRemoteObjectInterface.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.mm.
(isContainerClass):
(propertyListClasses):
(allowedArgumentClassesForMethod):
(initializeAllowedArgumentClasses):
(-[_WKRemoteObjectInterface initWithProtocol:identifier:]):
(+[_WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]):
(-[_WKRemoteObjectInterface description]):
(classesForSelectorArgument):
(-[_WKRemoteObjectInterface classesForSelector:argumentIndex:]):
(-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]):
(methodArgumentTypeEncodingForSelector):
(-[_WKRemoteObjectInterface _methodSignatureForSelector:]):
(-[_WKRemoteObjectInterface _allowedArgumentClassesForSelector:]):
* Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterfaceInternal.h.
* Shared/API/Cocoa/_WKRemoteObjectRegistry.h: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistry.h.
* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistry.mm.
(-[_WKRemoteObjectRegistry registerExportedObject:interface:]):
(-[_WKRemoteObjectRegistry unregisterExportedObject:interface:]):
(-[_WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
(-[_WKRemoteObjectRegistry _initWithMessageSender:IPC::]):
(-[_WKRemoteObjectRegistry _invalidate]):
(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
(-[_WKRemoteObjectRegistry WebKit::]):
(-[_WKRemoteObjectRegistry _invokeMethod:]):
(-[_WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]):
* Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistryInternal.h.
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController _remoteObjectRegistry]):
(-[WKBrowsingContextController remoteObjectRegistry]): Deleted.
* UIProcess/API/Cocoa/WKBrowsingContextControllerPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _remoteObjectRegistry]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInBrowserContextControllerToBeRemoved.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObject.h.
(-[WKWebProcessPlugInBrowserContextController remoteObjectRegistry]):
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _remoteObjectRegistry]):
(-[WKWebProcessPlugInBrowserContextController remoteObjectRegistry]): Deleted.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
2014-03-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166360.
https://bugs.webkit.org/show_bug.cgi?id=130869
Seems to have broken PLT (Requested by ap on #webkit).
Reverted changeset:
"Connection::dispatchOneMessage() can be re-entered while
handling Cmd-key menu"
https://bugs.webkit.org/show_bug.cgi?id=130767
http://trac.webkit.org/changeset/166360
2014-03-27 Sam Weinig <sam@webkit.org>
Support dynamic layer hosting context changes
<rdar://problem/16278019>
https://bugs.webkit.org/show_bug.cgi?id=130863
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView addWindowObserversForWindow:]):
(-[WKView removeWindowObservers]):
(-[WKView _windowDidChangeLayerHosting:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::layerHostingModeDidChange):
* UIProcess/WebPageProxy.h:
2014-03-27 Simon Fraser <simon.fraser@apple.com>
Don't leak the WKBrowsingContextController
https://bugs.webkit.org/show_bug.cgi?id=130815
Reviewed by Tim Horton.
Use adoptNS to avoid leaking the WKBrowsingContextController.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView browsingContextController]):
2014-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Give WebProcess a proxy application entitlement
https://bugs.webkit.org/show_bug.cgi?id=130806
Reviewed by Timothy Hatcher.
* Configurations/WebContent-iOS.entitlements:
2014-03-27 Anders Carlsson <andersca@apple.com>
Add reload and reloadFromOrigin as API
https://bugs.webkit.org/show_bug.cgi?id=130858
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView reload]):
(-[WKWebView reloadFromOrigin]):
(-[WKWebView validateUserInterfaceItem:]):
(-[WKWebView reload:]):
(-[WKWebView reloadFromOrigin:]):
2014-03-27 Anders Carlsson <andersca@apple.com>
Rename WKFrameHandle to _WKFrameHandle
https://bugs.webkit.org/show_bug.cgi?id=130847
Reviewed by Tim Horton.
* Shared/API/Cocoa/_WKFrameHandle.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandle.h.
* Shared/API/Cocoa/_WKFrameHandle.mm: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandle.mm.
(-[_WKFrameHandle dealloc]):
(-[_WKFrameHandle isEqual:]):
(-[_WKFrameHandle hash]):
(-[_WKFrameHandle _frameID]):
(-[_WKFrameHandle copyWithZone:]):
(+[_WKFrameHandle supportsSecureCoding]):
(-[_WKFrameHandle initWithCoder:]):
(-[_WKFrameHandle encodeWithCoder:]):
(-[_WKFrameHandle API::]):
* Shared/API/Cocoa/_WKFrameHandleInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandleInternal.h.
(WebKit::wrapper):
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]):
(-[WKWebProcessPlugInFrame handle]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
2014-03-27 Alexey Proskuryakov <ap@apple.com>
Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
equivalents, ASSERT(!_data->_keyDownEventBeingResent)
https://bugs.webkit.org/show_bug.cgi?id=130767
<rdar://problem/16307487>
Reviewed by Darin Adler.
* Shared/WebKit2Initialize.cpp: (WebKit::InitializeWebKit2): Added NSModalPanelRunLoopMode
to RunLoop event source and timer modes.
2014-03-27 Jae Hyun Park <jaepark@webkit.org>
Remove LayerTreeContextCairo.cpp
https://bugs.webkit.org/show_bug.cgi?id=130807
Reviewed by Martin Robinson.
* Shared/cairo/LayerTreeContextCairo.cpp: Removed.
2014-03-27 Maciej Florek <m.florek@samsung.com>
[EFL][WK2] Add tests of the set process model API
https://bugs.webkit.org/show_bug.cgi?id=130830
Reviewed by Gyuyoung Kim.
Implement unit tests to check, if process model API works
properly. When process model is set to EWK_PROCESS_MODEL_SHARED_SECONDARY,
there should be only one WebProcess. In case of EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
setting, each WebView should have own process, as well as the network process
should exist.
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
(EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
(EWK2UnitTest::EWK2UnitTestBase::SetUp):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
* UIProcess/API/efl/tests/test_ewk2_context.cpp:
(EWK2ContextTestMultipleProcesses::EWK2ContextTestMultipleProcesses):
(TEST_F):
2014-03-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166296 and r166331.
https://bugs.webkit.org/show_bug.cgi?id=130822
caused some crashes and frequent assertion failures, and the
fix is going to take a little while (Requested by thorton on
#webkit).
Reverted changesets:
"[iOS WebKit2] Flush all surfaces after painting into all of
them, instead of after painting into each one"
https://bugs.webkit.org/show_bug.cgi?id=130768
http://trac.webkit.org/changeset/166296
"Assertion failure in RemoteLayerBackingStore::flush"
https://bugs.webkit.org/show_bug.cgi?id=130810
http://trac.webkit.org/changeset/166331
2014-03-26 Tim Horton <timothy_horton@apple.com>
Blind speculative iOS build fix.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportConfigurationChanged):
2014-03-26 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] <rdar://problem/16265272> REGRESSION (WebKit2): Some pages appear blank until you scroll
https://bugs.webkit.org/show_bug.cgi?id=130819
Reviewed by Tim Horton.
When loading a new page, we never define the unobscured rect and exposed rect on the new frame.
As a result, there is nothing to render.
It uses to work thanks to dumb luck and a bug in Safari updating the visibleContentRects from
the UIProcess. Now that the bug is gone, "dumb luck" is not reliable enough to get the content rects :)
What this patch does is save if we have ever received new rects from the UI. If we have not, create them
based on the minimum layout size. This works because we know Safari shows the minimum layout size by default
and will tell us if it changes the obscured rects.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::didCommitLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::updateVisibleContentRects):
2014-03-26 Anders Carlsson <andersca@apple.com>
Add a _WKScriptWorld class
https://bugs.webkit.org/show_bug.cgi?id=130817
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/_WKScriptWorld.h: Added.
* UIProcess/API/Cocoa/_WKScriptWorld.mm: Added.
(generateWorldID):
(+[_WKScriptWorld defaultWorld]):
(-[_WKScriptWorld init]):
(-[_WKScriptWorld _initWithWorldID:]):
* WebKit2.xcodeproj/project.pbxproj:
2014-03-26 Anders Carlsson <andersca@apple.com>
Rename a delegate method to -webView:didFinishNavigation:
https://bugs.webkit.org/show_bug.cgi?id=130814
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):
2014-03-26 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Crashes on swipe
<rdar://problem/16440867>
Reviewed by Benjamin Poulain.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
Get the IOSurfaceRef from the WebCore::IOSurface.
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Fix the build: include UIKit headers inside the iOS #ifdef.
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Hook up -webkit-overflow-scrolling:touch for iOS WK2
https://bugs.webkit.org/show_bug.cgi?id=130809
Reviewed by Tim Horton.
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
Set the content size of the UIScrollVIew based on the geometry.
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer): Make a UIScrollView if the
layer properties tell us that we have the scrolling behavior.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
We need to allow user interaction in the _rootContentView so that events get to
nested UIScrollViews (this could be optimized in future).
* UIProcess/mac/RemoteLayerTreeHost.h:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::createLayer): Need to pass RemoteLayerTreeTransaction::LayerProperties
in so we can get at the custom behavior.
2014-03-26 Anders Carlsson <andersca@apple.com>
Add -[WKWebView stopLoading]
https://bugs.webkit.org/show_bug.cgi?id=130812
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView stopLoading]):
2014-03-26 Tim Horton <timothy_horton@apple.com>
Assertion failure in RemoteLayerBackingStore::flush
https://bugs.webkit.org/show_bug.cgi?id=130810
<rdar://problem/16439276>
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::flush):
We don't always have backing store to flush, if platformCALayerDrawsContent() is false.
We also can't assert that we have a back surface, because the very first paint will not.
2014-03-26 Andy Estes <aestes@apple.com>
[Cocoa] Expose DownloadClient::didFail() and DownloadClient::didCancel()
https://bugs.webkit.org/show_bug.cgi?id=130805
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/_WKDownloadDelegate.h:
* UIProcess/Cocoa/DownloadClient.h:
* UIProcess/Cocoa/DownloadClient.mm:
(WebKit::DownloadClient::DownloadClient):
(WebKit::DownloadClient::didFail):
(WebKit::DownloadClient::didCancel):
2014-03-26 Cody Krieger <cjk@apple.com>
-[WKWebProcessPlugInNodeHandle HTMLInputElementIsUserEdited] and -HTMLTextAreaElementIsUserEdited do not return the correct values.
https://bugs.webkit.org/show_bug.cgi?id=130804
Reviewed by Dan Bernstein.
The existing implementations of these methods are mis-cased
("HTMLInputELementIsUserEdited" and "HTMLTextAreaELementIsUserEdited" —
note the "EL" in both cases). This results in us getting
auto-synthesized getters for the HTMLInputElementIsUserEdited and
HTMLTextAreaElementIsUserEdited properties, which will return NO
unconditionally.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
Fix the capitalization of -HTMLInputElementIsUserEdited and
-HTMLTextAreaElementIsUserEdited.
2014-03-26 Andy Estes <aestes@apple.com>
[Cocoa] Expose DownloadProxy::cancel()
https://bugs.webkit.org/show_bug.cgi?id=130799
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/_WKDownload.h:
* UIProcess/API/Cocoa/_WKDownload.mm:
(-[_WKDownload cancel]):
2014-03-26 Timothy Hatcher <timothy@apple.com>
Propagate the hiddenFromInspector flag on ResourceRequest in
places when a new request a made or passed between processes.
https://bugs.webkit.org/show_bug.cgi?id=130741
Reviewed by Joseph Pecoraro.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest): Use updateFromDelegatePreservingOldProperties.
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encode): Added hiddenFromInspector support.
(IPC::ArgumentCoder<ResourceRequest>::decode): Ditto.
* WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
(WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame): Ditto.
2014-03-26 Andy Estes <aestes@apple.com>
[Cocoa] Expose DownloadProxy::request()
https://bugs.webkit.org/show_bug.cgi?id=130796
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/_WKDownload.h:
* UIProcess/API/Cocoa/_WKDownload.mm:
(-[_WKDownload request]):
2014-03-26 Anders Carlsson <andersca@apple.com>
Pass a real FrameLoadRequest to Chrome::createWindow
https://bugs.webkit.org/show_bug.cgi?id=130795
Reviewed by Dan Bernstein.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage):
2014-03-26 Jeremy Jones <jeremyj@apple.com>
Implement hasLiveStreamingContent property in WebAVPlayerController
https://bugs.webkit.org/show_bug.cgi?id=128684
Reviewed by Simon Fraser.
Plumb through the seekable ranges to the fullscreen interface.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
Add declaration for setSeekableRangesVector()
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
Add interface SetSeekableRangesVector()
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setSeekableRangesVector):
Add setSeekableRangesVector that translates the vector into a TimeRanges and calls setSeekableRanges()
* WebProcess/ios/WebVideoFullscreenManager.h:
Add setSeekableRanges()
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::setSeekableRanges):
setSeekableRanges() converts TimeRanges to Vector and calls SetSeekableRangesVector()
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Add a custom behavior flag to GraphicsLayer, piped down to PlatformCALayer, for scrolling layers
https://bugs.webkit.org/show_bug.cgi?id=130778
Reviewed by Tim Horton.
Make it possible to put a "custom behavior" flag on a layer so that,
with UI-side compositing, we know to create a specific type of
layer or view for that GraphicsLayer.
* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::customBehavior):
(PlatformCALayerRemote::updateCustomBehavior):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2014-03-26 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Remove shape-inside support
https://bugs.webkit.org/show_bug.cgi?id=130698
Reviewed by David Hyatt.
* Configurations/FeatureDefines.xcconfig:
2014-03-26 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
https://bugs.webkit.org/show_bug.cgi?id=130768
<rdar://problem/16421471>
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerBackingStore.h:
Add flush(), which synchronously flushes painting operations on the underlying backing store.
Factor clearBackingStore() out of ensureBackingStore/display, which releases our reference to underlying backing store.
Add two members for storing the back surface and front buffer context until flush() is called.
- We need to keep the back surface alive because the CGImageRef created from it is referenced by
the front surface's drawing queue, and won't be freed until said queue is flushed. If we release
the back surface (and its associated CGContextRef) *before* the CGImageRef is freed, we will
do an expensive readback of the surface.
- When not using accelerated drawing, we need to keep the front buffer's CGContextRef around
until the flush occurs so that we can avoid re-creating it in order to perform the flush. This
happens automatically in the accelerated drawing case via WebCore::IOSurface.
* Shared/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::ensureBackingStore):
(RemoteLayerBackingStore::clearBackingStore):
(RemoteLayerBackingStore::display):
Factor clearBackingStore() out of ensureBackingStore() and display().
Update a comment about the above performance gotcha.
Store the current back surface/front buffer context.
(RemoteLayerBackingStore::drawInContext):
Don't flush the context immediately after painting.
(RemoteLayerBackingStore::applyBackingStoreToLayer):
Move things around to reduce duplicated code.
(RemoteLayerBackingStore::flush):
Flush the current front surface/buffer's context.
Clear the new pending-flush members.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::flushBackingStoreChangesInTransaction):
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
Crawl through all of the valid changed backing stores in the transaction and flush them.
Remove a completely useless assertion.
2014-03-25 Simon Fraser <simon.fraser@apple.com>
Add a new type of scrolling tree node for overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=130763
Reviewed by Tim Horton.
Prepare for overflow scrolling via the scrolling tree by adding
a new scrolling node type for overflow:scroll nodes. Mostly
this is a new ScrollingNodeType that gets mapped to the same
scrolling state nodes and scrolling nodes, but iOS creates
state and scrolling nodes specific to overflow:scroll.
Change the type checking on nodes to use virtual functions instead
of just checking the node type, to allow the macros to work with
the new scrolling node type.
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::encodeNodeAndDescendants):
(WebKit::RemoteScrollingCoordinatorTransaction::decode):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::createNode):
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::create):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
* WebKit2.xcodeproj/project.pbxproj:
2014-03-26 Zan Dobersek <zdobersek@igalia.com>
Unreviewed. Removing the remaining Automake cruft.
* GNUmakefile.list.am: Removed.
2014-03-25 Pratik Solanki <psolanki@apple.com>
Remove PLATFORM(IOS) from NetworkProcessMac.mm
https://bugs.webkit.org/show_bug.cgi?id=130751
Reviewed by Alexey Proskuryakov.
Code in NetworkProcessMac.mm is guarded by PLATFORM(MAC) and so is not compiled on iOS.
Having PLATFORM(IOS) code in this file is unnecessary and confusing.
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::initializeProcessName):
(WebKit::overrideSystemProxies):
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
2014-03-25 Anders Carlsson <andersca@apple.com>
Add a UI delegate callback for handling window.open
https://bugs.webkit.org/show_bug.cgi?id=130757
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/Cocoa/UIClient.h:
* UIProcess/Cocoa/UIClient.mm:
(WebKit::UIClient::setDelegate):
(WebKit::UIClient::createNewPage):
2014-03-25 Anders Carlsson <andersca@apple.com>
Move stopLoading: back for now.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView stopLoading:]):
2014-03-25 Anders Carlsson <andersca@apple.com>
Change toolbarVisibility back to toolbarsVisibility
https://bugs.webkit.org/show_bug.cgi?id=130749
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWindowFeatures.h:
* UIProcess/API/Cocoa/WKWindowFeatures.mm:
(-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):
2014-03-25 Anders Carlsson <andersca@apple.com>
Pass the source frame to the CreateNewPage message
https://bugs.webkit.org/show_bug.cgi?id=130752
Reviewed by Tim Horton.
* UIProcess/API/APIUIClient.h:
(API::UIClient::createNewPage):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
2014-03-25 Anders Carlsson <andersca@apple.com>
Add a WebFrame::fromCoreFrame static member function and use it where possible
https://bugs.webkit.org/show_bug.cgi?id=130744
Reviewed by Tim Horton.
* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::documentFrame):
(WebKit::InjectedBundleNodeHandle::htmlFrameElementContentFrame):
(WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
(WebKit::InjectedBundleDOMWindowExtension::frame):
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
(WebKit::InjectedBundleHitTestResult::frame):
(WebKit::InjectedBundleHitTestResult::targetFrame):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::webPage):
(WebKit::PluginView::performFrameLoadURLRequest):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::focusedElementChanged):
(WebKit::WebChromeClient::focusedFrameChanged):
(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
(WebKit::WebChromeClient::print):
(WebKit::WebChromeClient::exceededDatabaseQuota):
(WebKit::WebChromeClient::runOpenPanel):
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::textFieldDidBeginEditing):
(WebKit::WebEditorClient::textFieldDidEndEditing):
(WebKit::WebEditorClient::textDidChangeInTextField):
(WebKit::WebEditorClient::textDidChangeInTextArea):
(WebKit::WebEditorClient::doTextFieldCommandFromEvent):
(WebKit::WebEditorClient::textWillBeDeletedInTextField):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::dispatchWillSendSubmitEvent):
(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::fromCoreFrame):
(WebKit::WebFrame::contentsAsString):
(WebKit::WebFrame::parentFrame):
(WebKit::WebFrame::childFrames):
(WebKit::WebFrame::frameForContext):
(WebKit::WebFrame::webArchiveData):
* WebProcess/WebPage/WebFrame.h:
2014-03-25 Jeffrey Pfau <jpfau@apple.com>
[WK2] Schemes registered as cache partitioned are not properly registered in new web processes
https://bugs.webkit.org/show_bug.cgi?id=130739
Reviewed by Anders Carlsson.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
2014-03-25 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Inspector View Indication Support
https://bugs.webkit.org/show_bug.cgi?id=130709
Reviewed by Simon Fraser.
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKInspectorIndicationView initWithFrame:]):
(-[WKContentView isShowingInspectorIndication]):
(-[WKContentView setShowingInspectorIndication:]):
(-[WKContentView _didCommitLayerTree:WebKit::]):
When indicating include a simple tinted UIView over the content.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _showInspectorIndication]):
(-[WKWebView _hideInspectorIndication]):
Have the content view show or hide an indication.
* UIProcess/PageClient.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showInspectorIndication):
(WebKit::PageClientImpl::hideInspectorIndication):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::showInspectorIndication):
(WebKit::WebPageProxy::hideInspectorIndication):
Pass WebProcess indication message up to the WKWebView.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::indicate):
(WebKit::WebInspectorClient::hideIndication):
* WebProcess/WebCoreSupport/WebInspectorClient.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::indicate):
(WebKit::WebPage::hideIndication):
Pass WebCore / remote inspector indication message up to UIProcess.
2014-03-25 Anders Carlsson <andersca@apple.com>
Add more properties to WKWindowFeatures
https://bugs.webkit.org/show_bug.cgi?id=130738
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWindowFeatures.h:
* UIProcess/API/Cocoa/WKWindowFeatures.mm:
(-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):
(-[WKWindowFeatures menuBarVisibility]):
(-[WKWindowFeatures statusBarVisibility]):
(-[WKWindowFeatures toolbarsVisibility]):
(-[WKWindowFeatures allowsResizing]):
2014-03-25 Anders Carlsson <andersca@apple.com>
Fix iOS build.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
Make WKIBActions OS X only for now.
2014-03-25 Anders Carlsson <andersca@apple.com>
Begin stubbing out a WKWindowFeatures class
https://bugs.webkit.org/show_bug.cgi?id=130733
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKWindowFeatures.h: Added.
* UIProcess/API/Cocoa/WKWindowFeatures.mm: Added.
(-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):
(-[WKWindowFeatures x]):
(-[WKWindowFeatures y]):
(-[WKWindowFeatures width]):
(-[WKWindowFeatures height]):
* UIProcess/API/Cocoa/WKWindowFeaturesInternal.h: Added.
* WebKit2.xcodeproj/project.pbxproj:
2014-03-25 Anders Carlsson <andersca@apple.com>
Add goBack: and goForward: IBActions and move stopLoading: to a new WKIBActions category on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=130732
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView goBack]):
(-[WKWebView goForward]):
(-[WKWebView validateUserInterfaceItem:]):
(-[WKWebView goBack:]):
(-[WKWebView goForward:]):
(-[WKWebView stopLoading:]):
2014-03-25 Martin Robinson <mrobinson@igalia.com>
[GTK] Remove the autotools build
https://bugs.webkit.org/show_bug.cgi?id=130717
Reviewed by Anders Carlsson.
* GNUmakefile.am: Removed.
* WebKit2Prefix.h: Removed references to the autotools configure file.
* config.h: Ditto.
2014-03-25 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[EFL][WK2] Add NETWORK_PROCESS build option
https://bugs.webkit.org/show_bug.cgi?id=130131
Reviewed by Gyuyoung Kim.
* PlatformEfl.cmake: Add file needed to build with NETWORK_PROCESS enabled.
2014-03-24 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[EFL][WK2] Add an API to set process model
https://bugs.webkit.org/show_bug.cgi?id=130133
Reviewed by Gyuyoung Kim.
Implement an API to set and get process model in ewk_context.
By default process model enum value is set to EWK_PROCESS_MODEL_SHARED_SECONDARY
which keeps current behaviour. Setting EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
will make each web view use separate web process, also enables network process.
* UIProcess/API/efl/ewk_context.cpp:
(toWKProcessModel):
(EwkContext::setProcessModel):
(toEwkProcessModel):
(EwkContext::processModel):
(ewk_context_process_model_set):
(ewk_context_process_model_get):
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/ewk_context_private.h:
* UIProcess/API/efl/tests/test_ewk2_context.cpp:
(TEST_F):
2014-03-24 Chris Fleizach <cfleizach@apple.com>
AX: hit-testing doesn't always work correctly with WK2
https://bugs.webkit.org/show_bug.cgi?id=130706
Reviewed by Simon Fraser.
Accessibility code was trying to do screenToRootView itself, and in
some cases with embedded WK2 views that did not work.
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
2014-03-24 Benjamin Poulain <bpoulain@apple.com>
[WK2] SpinLock are not initialized by default, ViewUpdateDispatcher is missing an initializer
https://bugs.webkit.org/show_bug.cgi?id=130705
Reviewed by Simon Fraser.
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::ViewUpdateDispatcher):
2014-03-24 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Dictation support.
https://bugs.webkit.org/show_bug.cgi?id=130622
<rdar://problem/15337316>
Reviewed by Benjamin Poulain.
Adding support for dictation on iOS. There are two main types of interactions
with the dictation system:
- initial request for context, which consists in retrieving the selected text
and 5 words before the selection and 5 words after, if available.
- insertion of recognized chunks of text, providing the text
to replace.
* UIProcess/AutoCorrectionCallback.h:
(WebKit::DictationContextCallback::create):
(WebKit::DictationContextCallback::~DictationContextCallback):
(WebKit::DictationContextCallback::performCallbackWithReturnValue):
(WebKit::DictationContextCallback::invalidate):
(WebKit::DictationContextCallback::DictationContextCallback):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView replaceDictatedText:withText:]):
(-[WKContentView requestDictationContext:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dictationContextCallback):
(WebKit::WebPageProxy::replaceDictatedText):
(WebKit::WebPageProxy::requestDictationContext):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestDictationContext):
(WebKit::WebPage::replaceDictatedText):
2014-03-24 Andy Estes <aestes@apple.com>
Yet another iOS build fix, for the 32-bit build this time.
* Shared/Downloads/ios/DownloadIOS.mm:
(WebKit::setUpDownloadClient):
2014-03-24 Tim Horton <timothy_horton@apple.com>
REGRESSION (r165872): Double-applying device scale to snapshots
https://bugs.webkit.org/show_bug.cgi?id=130697
<rdar://problem/16396629>
Reviewed by Simon Fraser.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scaledSnapshotWithOptions):
Drive-by, make scaledSnapshotWithOptions respect SnapshotOptionsExcludeDeviceScaleFactor.
(WebKit::WebPage::snapshotAtSize):
Divide the device scale out of the scale factor
* WebProcess/WebPage/WebPage.h:
Rename the scale argument to scaledSnapshotWithOptions to clarify
that it is an additional scale on top of the device scale.
2014-03-24 Brent Fulgham <bfulgham@apple.com>
Activate WebVTT Tests Once Merging is Complete
https://bugs.webkit.org/show_bug.cgi?id=130420
Reviewed by Eric Carlson.
* Configurations/FeatureDefines.xcconfig: Turn on ENABLE(WEBVTT_REGIONS)
2014-03-24 Andy Estes <aestes@apple.com>
Fix the iOS build.
* Shared/Downloads/ios/DownloadIOS.mm:
(WebKit::setUpDownloadClient):
* UIProcess/Cocoa/DownloadClient.mm:
2014-03-24 Mark Rowe <mrowe@apple.com>
Build fix after r166186.
* UIProcess/Cocoa/DownloadClient.mm:
2014-03-24 Benjamin Poulain <bpoulain@apple.com>
[WK2] Make updates on ViewUpdateDispatcher less heavy
https://bugs.webkit.org/show_bug.cgi?id=130626
Reviewed by Darin Adler.
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
* WebProcess/WebPage/ViewUpdateDispatcher.h:
2014-03-24 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Micro-optimize view state updates on the UIProcess side
https://bugs.webkit.org/show_bug.cgi?id=130631
Reviewed by Darin Adler.
* UIProcess/API/Cocoa/WKWebView.mm:
(contentZoomScale):
[UIScrollView zoomScale] is not fast enough for -[WKWebView _updateVisibleContentRects]. Since we know what the zoom view is,
make a fast version hardcoding that.
(-[WKWebView _updateScrollViewBackground]):
(-[WKWebView _zoomToPoint:WebCore::atScale:]):
(-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
(-[WKWebView _zoomToRect:WebCore::withOrigin:WebCore::fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
(-[WKWebView _updateVisibleContentRects]):
* UIProcess/ios/WKContentView.mm:
(fixedPositionRectFromExposedRect):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
2014-03-24 Dean Jackson <dino@apple.com>
Remove WebGL asset entitlement
https://bugs.webkit.org/show_bug.cgi?id=130685
Reviewed by Simon Fraser.
No longer necessary on iOS.
* Configurations/WebContent-iOS.entitlements:
2014-03-24 Andy Estes <aestes@apple.com>
[iOS] Download support by CFURLDownloadRef under USE(CFNETWORK).
https://bugs.webkit.org/show_bug.cgi?id=129322
Reviewed by Anders Carlsson.
Based on an original patch by Yongjun Zhang <yongjun_zhang@apple.com>.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* Shared/Downloads/ios/DownloadIOS.mm:
(WebKit::dispatchOnMainThread):
(WebKit::toDownload):
(WebKit::setUpDownloadClient):
(WebKit::Download::startWithHandle):
* UIProcess/API/APIDownloadClient.h:
(API::DownloadClient::~DownloadClient):
* UIProcess/API/C/WKContext.cpp:
(WKContextSetDownloadClient):
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _downloadDelegate]):
(-[WKProcessPool _setDownloadDelegate:]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/API/Cocoa/_WKDownload.h: Added.
* UIProcess/API/Cocoa/_WKDownload.mm: Added.
(WebKit::wrapper):
(WebKit::createAPIDownloadClient):
(-[_WKDownload dealloc]):
(-[_WKDownload API::]):
* UIProcess/API/Cocoa/_WKDownloadDelegate.h: Added.
* UIProcess/API/Cocoa/_WKDownloadInternal.h: Added.
* UIProcess/Cocoa/DownloadClient.h: Added.
* UIProcess/Cocoa/DownloadClient.mm: Added.
* WebKit2.xcodeproj/project.pbxproj:
2014-03-24 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com>
[EFL][WK2] Buildfix after r166159.
Reviewed by Csaba Osztrogonác.
* UIProcess/API/efl/ewk_settings.cpp:
(ewk_settings_file_access_from_file_urls_allowed_set):
(ewk_settings_file_access_from_file_urls_allowed_get):
2014-03-24 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL][WK2] Use C API inside ewk_settings
https://bugs.webkit.org/show_bug.cgi?id=107820
Reviewed by Gyuyoung Kim.
Use C API inside ewk_settings instead of accessing directly
internal C++ classes, to avoid violating API layering.
Original-author: Christophe Dumez <ch.dumez@sisa.samsung.com>
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/efl/ewk_settings.cpp:
(ewk_settings_fullscreen_enabled_set):
(ewk_settings_fullscreen_enabled_get):
(ewk_settings_javascript_enabled_set):
(ewk_settings_javascript_enabled_get):
(ewk_settings_loads_images_automatically_set):
(ewk_settings_loads_images_automatically_get):
(ewk_settings_developer_extras_enabled_set):
(ewk_settings_developer_extras_enabled_get):
(ewk_settings_file_access_from_file_urls_allowed_set):
(ewk_settings_file_access_from_file_urls_allowed_get):
(ewk_settings_frame_flattening_enabled_set):
(ewk_settings_frame_flattening_enabled_get):
(ewk_settings_dns_prefetching_enabled_set):
(ewk_settings_dns_prefetching_enabled_get):
(ewk_settings_encoding_detector_enabled_set):
(ewk_settings_encoding_detector_enabled_get):
(ewk_settings_preferred_minimum_contents_width_set):
(ewk_settings_preferred_minimum_contents_width_get):
(ewk_settings_offline_web_application_cache_enabled_set):
(ewk_settings_offline_web_application_cache_enabled_get):
(ewk_settings_scripts_can_open_windows_set):
(ewk_settings_scripts_can_open_windows_get):
(ewk_settings_local_storage_enabled_set):
(ewk_settings_local_storage_enabled_get):
(ewk_settings_plugins_enabled_set):
(ewk_settings_plugins_enabled_get):
(ewk_settings_default_font_size_set):
(ewk_settings_default_font_size_get):
(ewk_settings_private_browsing_enabled_set):
(ewk_settings_private_browsing_enabled_get):
(ewk_settings_text_autosizing_enabled_set):
(ewk_settings_text_autosizing_enabled_get):
(ewk_settings_spatial_navigation_enabled_set):
(ewk_settings_spatial_navigation_enabled_get):
(EwkSettings::setDefaultTextEncodingName):
* UIProcess/API/efl/ewk_settings_private.h:
(EwkSettings::EwkSettings):
(EwkSettings::preferences):
2014-03-24 Zan Dobersek <zdobersek@igalia.com>
[GTK][WK2] Guard NetscapePluginModule methods used in PluginInfoCache that are specific to X11 architecture
https://bugs.webkit.org/show_bug.cgi?id=130663
Reviewed by Carlos Garcia Campos.
The two used methods are specific to the X11 plugin architecture and are not declared when building for a
Wayland-only configuration. Guarding them prevents build failures, but does not ensure proper functionality
which isn't a problem anyway since there's no support yet for Netscape plugins on Wayland.
* UIProcess/Plugins/gtk/PluginInfoCache.cpp:
(WebKit::PluginInfoCache::getPluginInfo): Guard NetscapePluginModule::parseMIMEDescription with PLUGIN_ARCHITECTURE(X11).
(WebKit::PluginInfoCache::updatePluginInfo): Ditto for NetscapePluginModule::buildMIMEDescription.
2014-03-24 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Convert some more OwnPtr/PassOwnPtr to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=130662
Reviewed by Gyuyoung Kim.
Replace uses of PassOwnPtr/OwnPtr with std::unique_ptr in remained WebKit2/Efl specific code.
* UIProcess/API/efl/EwkView.h:
* UIProcess/API/efl/ewk_cookie_manager.cpp:
* UIProcess/API/efl/ewk_database_manager.cpp:
(getDatabaseOriginsCallback):
* UIProcess/API/efl/ewk_error_private.h:
* UIProcess/efl/DownloadManagerEfl.cpp:
(WebKit::DownloadManagerEfl::didFail):
* UIProcess/efl/InputMethodContextEfl.h:
(WebKit::InputMethodContextEfl::create):
* UIProcess/efl/PageLoadClientEfl.cpp:
(WebKit::PageLoadClientEfl::didFailLoadWithErrorForFrame):
(WebKit::PageLoadClientEfl::didFailProvisionalLoadWithErrorForFrame):
2014-03-23 Hyowon Kim <hw1008.kim@samsung.com>
Move all EFL typedefs into EflTypedefs.h.
https://bugs.webkit.org/show_bug.cgi?id=130511
Reviewed by Gyuyoung Kim.
* Shared/API/c/efl/WKArrayEfl.h: Remove EFL typedefs.
* UIProcess/API/efl/EwkView.h: Ditto.
2014-03-23 Jinwoo Song <jinwoo7.song@samsung.com>
[WK2] Refine WebKit2 BatteryStatus code
https://bugs.webkit.org/show_bug.cgi?id=130573
Reviewed by Anders Carlsson.
Refinements
- Return PassRef instead of PassRefPtr in create methods
- Use auto instead of iterator
* UIProcess/WebBatteryManagerProxy.cpp:
(WebKit::WebBatteryManagerProxy::create):
* UIProcess/WebBatteryManagerProxy.h:
* UIProcess/efl/BatteryProvider.cpp:
(BatteryProvider::create):
* UIProcess/efl/BatteryProvider.h:
* WebProcess/Battery/WebBatteryManager.cpp:
(WebKit::WebBatteryManager::didChangeBatteryStatus):
(WebKit::WebBatteryManager::updateBatteryStatus):
2014-03-23 Sam Weinig <sam@webkit.org>
Simplify the HTMLConverter interface (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=130654
Reviewed by Darin Adler.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performDictionaryLookupForRange):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::getAttributedSubstringFromRange):
(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):
(WebKit::WebPage::performDictionaryLookupAtLocation):
(WebKit::WebPage::performDictionaryLookupForSelection):
(WebKit::WebPage::performDictionaryLookupForRange):
2014-03-23 David Kilzer <ddkilzer@apple.com>
WebKit::resistanceForDelta() truncates 'scaleDistance' to integer value using abs()
<http://webkit.org/b/130651>
Reviewed by Darin Adler.
Fixes the following build failure with trunk clang:
WebKit2/UIProcess/mac/ViewGestureControllerMac.mm:112:28: error: using integer absolute value function 'abs' when argument is of floating point type [-Werror,-Wabsolute-value]
double scaleDistance = abs(limit - currentScale);
^
WebKit2/UIProcess/mac/ViewGestureControllerMac.mm:112:28: note: use function 'fabs' instead
double scaleDistance = abs(limit - currentScale);
^~~
fabs
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::resistanceForDelta): Use fabs() instead of abs().
2014-03-23 Simon Fraser <simon.fraser@apple.com>
Clean up #includes by geometry classes
https://bugs.webkit.org/show_bug.cgi?id=130645
Reviewed by Andreas Kling.
Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
classes brings in a lot of additional headers. Fix by adding a new
GeometryUtilities file so that the basic files don't need Vector,
and including GeometryUtilities.h where necessary.
Also forward declare PrintStream.h and only bring in the header
in implementation files.
* Shared/UpdateInfo.h:
* UIProcess/BackingStore.h:
* UIProcess/CoordinatedGraphics/PageViewportController.h:
* UIProcess/FindIndicator.cpp:
* UIProcess/mac/WKPrintingView.h:
2014-03-23 Simon Fraser <simon.fraser@apple.com>
Clean up #includes by geometry classes
https://bugs.webkit.org/show_bug.cgi?id=130645
Reviewed by Andreas Kling.
Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
classes brings in a lot of additional headers. Fix by adding a new
GeometryUtilities file so that the basic files don't need Vector,
and including GeometryUtilities.h where necessary.
Also forward declare PrintStream.h and only bring in the header
in implementation files.
* UIProcess/BackingStore.h:
* UIProcess/FindIndicator.cpp:
* UIProcess/mac/WKPrintingView.h:
2014-03-22 Alexey Proskuryakov <ap@apple.com>
Assertions in WebPage::rangeFromEditingRange when requested range location is NSNotFound
https://bugs.webkit.org/show_bug.cgi?id=130633
<rdar://problem/16397583>
Reviewed by Darin Adler.
* UIProcess/API/mac/WKView.mm:
(-[WKView firstRectForCharacterRange:completionHandler:]):
(-[WKView firstRectForCharacterRange:actualRange:]):
Return NSZeroRect, like NSTextView does for any locations that are out of bounds.
There is no need for a round trip to WebProcess in this case.
2014-03-21 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Reduce the tiling coverage to the current rect and 1 tile size ahead
https://bugs.webkit.org/show_bug.cgi?id=130555
Reviewed by Simon Fraser.
* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::operator==):
* UIProcess/ios/WKContentView.mm:
(WebKit::HistoricalKinematicData::HistoricalKinematicData):
(WebKit::HistoricalKinematicData::velocityForNewData):
(WebKit::HistoricalKinematicData::clear):
(WebKit::HistoricalKinematicData::append):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
2014-03-21 Alexey Proskuryakov <ap@apple.com>
REGRESSION (r165356): Predictive Chinese input is broken
https://bugs.webkit.org/show_bug.cgi?id=130619
Reviewed by Enrica Casucci.
* UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::executeKeypressCommands):
Like after insertText, we are no longer in an intermediate state after executeKeypressCommands.
Make sure that we don't call -discardMarkedText the next time we get a non-intermediate
state with closed composition.
2014-03-21 Sam Weinig <sam@webkit.org>
[WebKit2] Implement NetworkingContext::sourceApplicationAuditData() for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=130528
Reviewed by Tim Horton.
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.cpp:
(IPC::Connection::getAuditToken):
Expose the audit data if available.
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::sourceApplicationAuditData):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::sourceApplicationAuditData):
Pass the audit data corresponding to the UIProcess.
* Configurations/Network-iOS.entitlements: Copied from Configurations/WebContent-iOS.entitlements.
* Configurations/NetworkProcess.xcconfig:
* Configurations/NetworkService.Development.xcconfig:
* Configurations/NetworkService.xcconfig:
* Configurations/WebContent-iOS.entitlements:
Add entitlement allowing the audit data to be used.
2014-03-21 Tim Horton <timothy_horton@apple.com>
Always retrieve the screen scale factor from WKSI
<rdar://problem/16329679>
Reviewed by Sam Weinig.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
(-[WKContentView _updateForScreen:]):
Use WKGetScreenScaleFactor/WKGetScaleFactorForScreen.
2014-03-21 Yongjun Zhang <yongjun_zhang@apple.com>
[Webkit2] Add APIDownloadClient for download support.
https://bugs.webkit.org/show_bug.cgi?id=130484
Add API::DownloadClient to WebContext and get rid of WebDownloadClient.
Reviewed by Anders Carlsson.
* UIProcess/API/APIDownloadClient.h: Added.
(API::DownloadClient::~DownloadClient):
(API::DownloadClient::didStart):
(API::DownloadClient::didReceiveAuthenticationChallenge):
(API::DownloadClient::didReceiveResponse):
(API::DownloadClient::didReceiveData):
(API::DownloadClient::shouldDecodeSourceDataOfMIMEType):
(API::DownloadClient::decideDestinationWithSuggestedFilename):
(API::DownloadClient::didCreateDestination):
(API::DownloadClient::didFinish):
(API::DownloadClient::didFail):
(API::DownloadClient::didCancel):
(API::DownloadClient::processDidCrash):
* UIProcess/API/C/WKContext.cpp:
(WKContextSetDownloadClient): Move the original WebDownloadClient methods to a local class
DownloadClient and set up the downloadClient for WebContext.
* UIProcess/Downloads/DownloadProxy.cpp:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::setDownloadClient):
* UIProcess/WebContext.h:
(WebKit::WebContext::downloadClient):
* UIProcess/WebDownloadClient.cpp: Removed.
* UIProcess/WebDownloadClient.h: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2014-03-21 Alexey Proskuryakov <ap@apple.com>
ASSERTION FAILED: event == [NSApp currentEvent] hitting Command-+
https://bugs.webkit.org/show_bug.cgi?id=130526
<rdar://problem/16371612>
This was fixed yesterday for sync code path, landing the same this for async one.
* UIProcess/API/mac/WKView.mm: (-[WKView performKeyEquivalent:]):
2014-03-21 Pratik Solanki <psolanki@apple.com>
Add callbacks in WebKit2 Cocoa API for page load testing
https://bugs.webkit.org/show_bug.cgi?id=130569
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(didFirstVisuallyNonEmptyLayoutForFrame):
(didHandleOnloadEventsForFrame):
(setUpPageLoaderClient):
(willSendRequestForFrame):
(didInitiateLoadForResource):
(didFinishLoadForResource):
(didFailLoadForResource):
(setUpResourceLoadClient):
2014-03-21 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Remove Ewk_Error parameter from some async callbacks
https://bugs.webkit.org/show_bug.cgi?id=130567
Reviewed by Gyuyoung Kim.
WebKit2 internally uses GenericCallbacks for several APIs such as WKKeyValueStorageManagerGetKeyValueStorageOrigins.
But only few callbacks really return errors.
This patch removes Ewk_Error parameters from these callbacks not to make
the confusion for application developers.
* UIProcess/API/efl/ewk_cookie_manager.cpp:
(getAcceptPolicyCallback):
(getHostnamesWithCookiesCallback):
* UIProcess/API/efl/ewk_cookie_manager.h:
* UIProcess/API/efl/ewk_database_manager.cpp:
(getDatabaseOriginsCallback):
* UIProcess/API/efl/ewk_database_manager.h:
* UIProcess/API/efl/ewk_storage_manager.cpp:
(getStorageOriginsCallback):
* UIProcess/API/efl/ewk_storage_manager.h:
* UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
(EWK2CookieManagerTest::getAcceptPolicyCallback):
(EWK2CookieManagerTest::getHostnamesWithCookiesCallback):
* UIProcess/API/efl/tests/test_ewk2_database_manager.cpp:
(EWK2DatabaseManagerTest::databaseOriginsCallback):
* UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
(EWK2StorageManagerTest::getStorageOriginsCallback):
2014-03-21 Darin Adler <darin@apple.com>
Improve idiom used for string building in a few places
https://bugs.webkit.org/show_bug.cgi?id=130561
Reviewed by Andreas Kling.
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox): Use a more efficient idiom for string
concatenation.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::createInspectorPage): Use a StringBuilder.
2014-03-20 Hyowon Kim <hw1008.kim@samsung.com>
Move to using std::unique_ptr for EFL objects.
https://bugs.webkit.org/show_bug.cgi?id=129853
Reviewed by Gyuyoung Kim.
EflUniquePtr is a template alias of std::unique_ptr
with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.
* Platform/Module.h:
* Platform/efl/ModuleEfl.cpp:
(WebKit::Module::load):
* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):
* UIProcess/API/efl/EwkView.h:
* UIProcess/efl/InputMethodContextEfl.cpp:
(WebKit::InputMethodContextEfl::InputMethodContextEfl):
(WebKit::InputMethodContextEfl::createIMFContext):
* UIProcess/efl/InputMethodContextEfl.h:
(WebKit::InputMethodContextEfl::create):
2014-03-20 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[EFL][GTK] Get CMake to find Freetype2 properly
https://bugs.webkit.org/show_bug.cgi?id=130150
Reviewed by Martin Robinson.
Newer versions of CMake are not able to find Freetype2 correctly.
FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
freetype2 repo, because a completely different version number is found in freetype2.pc.
* PlatformEfl.cmake:
2014-03-20 Martin Robinson <mrobinson@igalia.com>
[GTK] Suppress errors about using gdk_threads_enter gdk_threads_leave
https://bugs.webkit.org/show_bug.cgi?id=130517
Reviewed by Sergio Villar Senin.
* UIProcess/API/gtk/WebKitWebView.cpp: Use GCC suppression to suppress errors about deprecations.
* UIProcess/gtk/WebPopupMenuProxyGtk.cpp: Ditto.
2014-03-20 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] tests of test_ewk2_cookie_manager are flaky
https://bugs.webkit.org/show_bug.cgi?id=130498
Reviewed by Gyuyoung Kim.
Loaded web page before calling getAcceptPolicy() to guarantee that webprocess
or networkprocess was launched and registered WebCookieManager.
* UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
(TEST_F):
2014-03-20 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165985.
https://bugs.webkit.org/show_bug.cgi?id=130551
broke page loading on all cocoa platforms (Requested by
thorton on #webkit).
Reverted changeset:
"[WebKit2] Implement
NetworkingContext::sourceApplicationAuditData() for WebKit2"
https://bugs.webkit.org/show_bug.cgi?id=130528
http://trac.webkit.org/changeset/165985
2014-03-20 Alexey Proskuryakov <ap@apple.com>
Fix a long-standing typo that's now breaking USE(ASYNC_NSTEXTINPUTCLIENT) build.
Rubber-stamped by Tim Horton.
* UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::cancelComposition):
Use a correct type for reply (it's really the same type, but ConfirmComposition
is behind an ifdef, and not available).
2014-03-20 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] typing and deleting text lags behind the caret movement on google.com.
https://bugs.webkit.org/show_bug.cgi?id=130544
<rdar://problem/16380296>
Reviewed by Tim Horton.
On iOS the selection is drawn in the UIProcess. If the WebProcess is
processing multiple requests within the same runloop, the caret could be
updated in the UIProcess before the WebProcess has had a chance to paint.
This change synchronizes the selection drawing with the tile update.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _didCommitLayerTree:WebKit::]):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _selectionChanged]):
(-[WKContentView _updateChangedSelection]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChangeSelection):
2014-03-20 Alexey Proskuryakov <ap@apple.com>
Generalize WebInspector check in maybeInitializeSandboxExtensionHandle().
https://bugs.webkit.org/show_bug.cgi?id=130079
<rdar://problem/16286683>
Reviewed by Anders Carlsson.
* UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
Perform an early return for all paths that don't need a sandbox extension due to
access being assumed, not only for WebInspector pages.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::hasAssumedReadAccessToURL):
(WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
* UIProcess/WebProcessProxy.h:
Factored out m_localPathsWithAssumedReadAccess iteration to a public function.
2014-03-20 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r165983 for non Cocoa platforms.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKPreferences.cpp:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
2014-03-20 Beth Dakin <bdakin@apple.com>
Implement contentInset for Mac WebKit2
https://bugs.webkit.org/show_bug.cgi?id=130273
Reviewed by Simon Fraser.
This patch adds WKView API for setting a topContentInset(). All of this work gets
that number plumbed down to WebCore.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setTopContentInset:]):
(-[WKWebView _topContentInset]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _setTopContentInset:]):
(-[WKView _topContentInset]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setTopContentInset):
(WebKit::WebPageProxy::creationParameters):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::topContentInset):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setTopContentInset):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2014-03-20 Anders Carlsson <andersca@apple.com>
Fix 32-bit build.
* UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm:
2014-03-20 Anders Carlsson <andersca@apple.com>
Make WKProcessPoolConfiguration SPI
https://bugs.webkit.org/show_bug.cgi?id=130537
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKProcessPool.h:
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool init]):
(-[WKProcessPool dealloc]):
(-[WKProcessPool description]):
(-[WKProcessPool _configuration]):
(-[WKProcessPool API::]):
(-[WKProcessPool _initWithConfiguration:]):
* UIProcess/API/Cocoa/WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm:
(-[WKProcessPoolConfiguration _injectedBundleURL]):
(-[WKProcessPoolConfiguration _setInjectedBundleURL:]):
* UIProcess/API/Cocoa/WKProcessPoolConfigurationPrivate.h:
* UIProcess/API/Cocoa/WKProcessPoolInternal.h:
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/API/Cocoa/WKProcessPoolToBeRemoved.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolPrivate.h.
(-[WKProcessPool initWithConfiguration:]):
(-[WKProcessPool configuration]):
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolConfigurationPrivate.h.
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm.
(-[_WKProcessPoolConfiguration injectedBundleURL]):
(-[_WKProcessPoolConfiguration setInjectedBundleURL:]):
(-[_WKProcessPoolConfiguration description]):
(-[_WKProcessPoolConfiguration copyWithZone:]):
* WebKit2.xcodeproj/project.pbxproj:
2014-03-20 Tim Horton <timothy_horton@apple.com>
Add WebCore::IOSurface wrapper
https://bugs.webkit.org/show_bug.cgi?id=130529
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::encode):
(RemoteLayerBackingStore::decode):
(RemoteLayerBackingStore::display):
(RemoteLayerBackingStore::applyBackingStoreToLayer):
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
* UIProcess/mac/ViewSnapshotStore.h:
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::createIOSurfaceFromImage):
(WebKit::ViewSnapshotStore::recordSnapshot):
Adopt WebCore::IOSurface.
2014-03-20 Alexey Proskuryakov <ap@apple.com>
Update iOS input method code to use new cross-platform async functions
https://bugs.webkit.org/show_bug.cgi?id=130530
Reviewed by Enrica Casucci.
Merge identical iOS and cross-platform functions.
Also tightened up ifdefs, and removed stub iOS implementations of sync methods,
which hopefully won't be ever needed. The only tricky case is sync cancelComposition,
will I'll investigate separately.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setMarkedText:selectedRange:]):
(-[WKContentView unmarkText]):
(-[WKContentView insertText:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::cancelComposition):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::cancelComposition):
(WebKit::WebPageProxy::insertDictatedTextAsync):
(WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
(WebKit::WebPageProxy::attributedStringForCharacterRangeCallback):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::cancelComposition):
(WebKit::WebPage::insertDictatedTextAsync):
(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):
2014-03-20 Alexey Proskuryakov <ap@apple.com>
ASSERTION FAILED: event == [NSApp currentEvent] hitting Command-+
https://bugs.webkit.org/show_bug.cgi?id=130526
<rdar://problem/16371612>
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm: (-[WKView performKeyEquivalent:]): Cut custom
processing short whenever we are redispatching an event, not just when the event
we are handling is the one being redispatched. There shouldn't be any other unrelated
events here, just the one being redispatched and synthetic ones generated from it by AppKit.
2014-03-20 Anders Carlsson <andersca@apple.com>
Fix build.
Rename WKPreferencesPrivate.h to WKPreferencesRefPrivate.h.
* UIProcess/API/C/WKPreferencesRefPrivate.h: Renamed from Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebKit2.xcodeproj/project.pbxproj:
2014-03-20 Gavin Barraclough <barraclough@apple.com>
Merge AtomicString, Identifier
https://bugs.webkit.org/show_bug.cgi?id=128624
Unreviewed build fix following r165982.
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
- update includes.
2014-03-20 Sam Weinig <sam@webkit.org>
[WebKit2] Implement NetworkingContext::sourceApplicationAuditData() for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=130528
Reviewed by Anders Carlsson.
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.cpp:
(IPC::Connection::getAuditToken):
Expose the audit data if available.
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::sourceApplicationAuditData):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::sourceApplicationAuditData):
Pass the audit data corresponding to the UIProcess.
2014-03-20 Sam Weinig <sam@webkit.org>
[Cocoa] Expose preference to enable telephone number detection
https://bugs.webkit.org/show_bug.cgi?id=130524
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _telephoneNumberDetectionIsEnabled]):
(-[WKPreferences _setTelephoneNumberDetectionIsEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesInternal.h:
* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Added.
* WebKit2.xcodeproj/project.pbxproj:
2014-03-19 Alexey Proskuryakov <ap@apple.com>
[Mac] Support asynchronous NSTextInputClient
https://bugs.webkit.org/show_bug.cgi?id=130479
Reviewed by Anders Carlsson.
The implementation is currently disabled, pending lower level support.
Most of the code is not under compile time guard however, to facilitate cross-platform
reuse, or at least under a PLATFORM(COCOA) guard to share the code with iOS.
* UIProcess/API/mac/WKView.mm: Added a compile time branch for USE(ASYNC_NSTEXTINPUTCLIENT).
We still implement sync NSTextInputClient here, in order to get assertions when
its methods are unexpectedly called.
The new code first sends an event to input method asynchronously, handling any callbacks
that may arrive. During this time, we no longer care about WKViewInterpretKeyEventsParameters
at all. Once done, we interpret key bindings synchronously, collecting them into
a vector.
* UIProcess/API/mac/WKViewInternal.h: We no longer expose _interpretKeyEvent outside
WKView.
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
Added async calls and callbacks. Removed unnecessary and slightly harmful .get() when moving
a callback pointer into map. Moved insertDictatedText() and getAttributedSubstringFromRange()
from PLATFORM(COCOA) to PLATFORM(MAC), because they are unused and unimplemented on
iOS, and unlikely to be needed any time soon. Changed USE(APPKIT) to PLATFORM(MAC),
because that's more accurate in this case (nothing depends on AppKit, it's just code
that we only need on Mac).
* UIProcess/WebPageProxy.messages.in: Added messages for new async IM responses.
* UIProcess/ios/WebPageProxyIOS.mm: Removed insertDictatedText() and getAttributedSubstringFromRange().
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::insertDictatedTextAsync):
(WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
(WebKit::WebPageProxy::attributedStringForCharacterRangeCallback):
Added async calls and callbacks that are Mac only.
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
Added async implementations (which are essentially the same as sync ones, sadly).
* WebProcess/WebPage/WebPage.messages.in: Added async messages, moved some messages
under PLATFORM(MAC).
* WebProcess/WebPage/ios/WebPageIOS.mm: More of deleting functions that are Mac only,
and cannot be easily implemented in WebPage.cpp with shared code.
2014-03-20 Martin Robinson <mrobinson@igalia.com>
Remove remaining GTK+ unused parameter warnings from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=130518
Reviewed by Sergio Villar Senin.
Fix almost all unused parameter warnings in the WebKit2GTK+ build.
2014-03-20 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165962.
https://bugs.webkit.org/show_bug.cgi?id=130512
It broke the build (Requested by Ossy on #webkit).
Reverted changeset:
"[EFL][GTK] Get CMake to find Freetype2 properly"
https://bugs.webkit.org/show_bug.cgi?id=130150
http://trac.webkit.org/changeset/165962
2014-03-20 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[EFL][GTK] Get CMake to find Freetype2 properly
https://bugs.webkit.org/show_bug.cgi?id=130150
Reviewed by Csaba Osztrogonác.
Newer versions of CMake are not able to find Freetype2 correctly.
FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
freetype2 repo, because a completely different version number is found in freetype2.pc.
* PlatformEfl.cmake:
2014-03-20 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] test_ewk2_application_cache_manager is flaky
https://bugs.webkit.org/show_bug.cgi?id=130501
Reviewed by Gyuyoung Kim.
* UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
(timerCallback): Return ECORE_CALLBACK_CANCEL to clear the timer.
2014-03-19 Tim Horton <timothy_horton@apple.com>
Address late review comment and style nit after r165934.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
2014-03-19 Tim Horton <timothy_horton@apple.com>
[iOS][WebKit2] Back-forward swipe doesn't always complete with fingers down
https://bugs.webkit.org/show_bug.cgi?id=130489
<rdar://problem/16027007>
Reviewed by Simon Fraser.
* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
In order to have fingers-down swipe completion work correctly, we need
to give UIKit an empty interactive update block.
2014-03-19 Anders Carlsson <andersca@apple.com>
Get rid of two IPC::Connection functions by folding them into lambdas
https://bugs.webkit.org/show_bug.cgi?id=130482
Reviewed by Tim Horton.
* Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
* Platform/IPC/Connection.h:
2014-03-19 Simon Fraser <simon.fraser@apple.com>
Expose text and page zoom in WK2 SPI, and hook them up in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=130476
Reviewed by Anders Carlsson.
Expose page and text zoom as SPI.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _supportsTextZoom]):
(-[WKWebView _textZoomFactor]):
(-[WKWebView _setTextZoomFactor:]):
(-[WKWebView _pageZoomFactor]):
(-[WKWebView _setPageZoomFactor:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-03-19 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Reduce the extended background's opacity when WKContentView is smaller than its WKWebView
https://bugs.webkit.org/show_bug.cgi?id=130436
Reviewed by Beth Dakin.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateScrollViewBackground]):
2014-03-19 Benjamin Poulain <bpoulain@apple.com>
[iOS][WebKit2] <rdar://problem/16330387> Do not use the keyboard rect for computing the general unobscuredRect, only use it for centering
https://bugs.webkit.org/show_bug.cgi?id=130382
Reviewed by Simon Fraser.
Always accumulating the keyboard rect out of the exposedRect caused some issues (see <rdar://problem/16330387>).
This patch split the rect in two: unobscured rect for WebCore, and unobscuredContentRectIncludingKeyboard for centering
UI Elements in view.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _zoomToRect:WebCore::atScale:origin:WebCore::]):
(-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
(-[WKWebView _zoomToRect:WebCore::withOrigin:WebCore::fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
(-[WKWebView _contentRectForUserInteraction]):
(-[WKWebView _updateVisibleContentRects]):
2014-03-19 Anders Carlsson <andersca@apple.com>
Get rid of WKProcessClass
https://bugs.webkit.org/show_bug.cgi?id=130478
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKProcessClass.h: Removed.
* UIProcess/API/Cocoa/WKProcessClass.mm: Removed.
* UIProcess/API/Cocoa/WKProcessClassConfiguration.h: Removed.
* UIProcess/API/Cocoa/WKProcessClassConfiguration.mm: Removed.
* UIProcess/API/Cocoa/WKProcessClassConfigurationPrivate.h: Removed.
* UIProcess/API/Cocoa/WKProcessClassPrivate.h: Removed.
* UIProcess/API/Cocoa/WKWebViewConfigurationToBeRemoved.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2014-03-19 Jer Noble <jer.noble@apple.com>
[Mac][EME] Query whether decoder support exists before creating a new MediaKeys object.
https://bugs.webkit.org/show_bug.cgi?id=130459
Reviewed by Eric Carlson.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Initialize the new WCSI method.
2014-03-19 Brady Eidson <beidson@apple.com>
Filter out editable services from image menu for non-contenteditable images
<rdar://problem/16319645> and https://bugs.webkit.org/show_bug.cgi?id=130437
Reviewed by Tim Horton.
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKSharingServicePickerDelegate setIncludeEditorServices:]):
(-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
Filter out editing services based on the includeEditorServices flag.
(WebKit::WebContextMenuProxyMac::setupImageServicesMenu):
(WebKit::WebContextMenuProxyMac::populate):
2014-03-19 Yongjun Zhang <yongjun_zhang@apple.com>
[iOS] WebKit2 Quicklook.
https://bugs.webkit.org/show_bug.cgi?id=130360
For WebKit2 resource loads, if we detect a quicklook content that QLConverter is able to
convert, handle the response data to QLConverter and use its delegate WKWebResourceQuickLookDelegate
to rounte the converted results (HTML) back into WebCore. Thie similiar logic has been in place
for WebKit1.
Reviewed by Tim Horton.
* WebKit2.xcodeproj/project.pbxproj: Add WebResourceLoaderIOS.mm to the project.
* WebProcess/Network/WebResourceLoadScheduler.cpp:
* WebProcess/ios/WebResourceLoaderIOS.mm: Added.
(-[WKWebResourceQuickLookDelegate initWithWebResourceLoader:WebKit::]): WKWebResourceQuickLookDelegate holds
the original WebResourceLoader so that we could send converted result to WebCore.
(-[WKWebResourceQuickLookDelegate connection:didReceiveDataArray:]):
(-[WKWebResourceQuickLookDelegate connection:didReceiveData:lengthReceived:]):
(-[WKWebResourceQuickLookDelegate connectionDidFinishLoading:]):
(-[WKWebResourceQuickLookDelegate connection:didFailWithError:]):
(-[WKWebResourceQuickLookDelegate clearHandle]):
(WebKit::WebResourceLoader::setUpQuickLookHandleIfNeeded):
2014-03-19 Tim Horton <timothy_horton@apple.com>
WebKit2 View Gestures: Swipe gesture can track vertical movement instead of horizontal movement
https://bugs.webkit.org/show_bug.cgi?id=130441
<rdar://problem/16337279>
Reviewed by Simon Fraser.
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::scrollEventCanBecomeSwipe):
Factor logic that determines if a scroll event can become a swipe
out into scrollEventCanBecomeSwipe.
Use <= instead of < when comparing the axes, because we don't want
to start a swipe on a completely diagonal scroll either (because AppKit
can start tracking a vertical swipe in that case).
(WebKit::ViewGestureController::handleScrollWheelEvent):
(WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore):
Make use of scrollEventCanBecomeSwipe.
2014-03-18 Anders Carlsson <andersca@apple.com>
Add new functionality that will be required by the history item decoding
https://bugs.webkit.org/show_bug.cgi?id=130433
Reviewed by Sam Weinig.
* Shared/cf/KeyedDecoder.cpp:
(WebKit::KeyedDecoder::decodeUInt32):
(WebKit::KeyedDecoder::decodeInt32):
(WebKit::KeyedDecoder::decodeFloat):
* Shared/cf/KeyedDecoder.h:
2014-03-19 Tim Horton <timothy_horton@apple.com>
[iOS] WebPDFViewPlaceholder divides-by-zero with an empty document
https://bugs.webkit.org/show_bug.cgi?id=130444
<rdar://problem/15580682>
Reviewed by Sam Weinig.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_setContentProviderData:]):
Don't make UIPDFPageViews for null pages.
2014-03-18 Tim Horton <timothy_horton@apple.com>
[iOS][WebKit2] Provide generic software-snapshotting API
https://bugs.webkit.org/show_bug.cgi?id=130385
<rdar://problem/16005957>
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView initWithFrame:fromWKView:]):
(-[_WKThumbnailView _requestSnapshotIfNeeded]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::takeSnapshot):
(WebKit::WebPage::scaledSnapshotWithOptions):
(WebKit::WebPage::snapshotAtSize):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Rename TakeThumbnailSnapshot message to TakeSnapshot.
Fill the snapshot image with the FrameView's background color, to avoid
half-pixel alpha around the edges.
Factor snapshotAtSize out of scaledSnapshotWithOptions.
Don't apply both the custom and device scale factor to the base CTM,
only the device scale factor. Custom scale factor should only be
applied to the user CTM.
* Shared/ImageOptions.h:
Add a snapshot option, RespectDrawingAreaTransform, that maps
the rect through the drawing area's root layer transform.
Use this in place of the thumbnail-specific code in TakeThumbnailSnapshot.
Add a snapshot option, ExcludeDeviceScaleFactor, which means that
snapshotting will not factor the device scale in (useful for drawing
to a bitmap at an exact requested size).
2014-03-18 Samuel White <samuel_white@apple.com>
AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
https://bugs.webkit.org/show_bug.cgi?id=130250
Reviewed by Chris Fleizach.
Added ability to toggle enhanced accessibility on and off to support tests that require it.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilityEnableEnhancedAccessibility):
(WKAccessibilityEnhancedAccessibilityEnabled):
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
2014-03-18 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Rename async APIs for better consistency with EFL
https://bugs.webkit.org/show_bug.cgi?id=130319
Reviewed by Gyuyoung Kim.
There are inconsistency with async keyword in several ewebkit2 APIs.
This patch rename them to {module/feature}_async_{verb} for better consistency with EFL.
In addition, added Async keyword into their callback name.
* UIProcess/API/efl/ewk_application_cache_manager.cpp:
(EwkApplicationCacheOriginsAsyncData::EwkApplicationCacheOriginsAsyncData):
(getApplicationCacheOriginsCallback):
(ewk_application_cache_manager_origins_async_get):
* UIProcess/API/efl/ewk_application_cache_manager.h:
* UIProcess/API/efl/ewk_cookie_manager.cpp:
(EwkCookiePolicyAsyncData::EwkCookiePolicyAsyncData):
(getAcceptPolicyCallback):
(ewk_cookie_manager_accept_policy_async_get):
(EwkCookieHostnamesAsyncData::EwkCookieHostnamesAsyncData):
(getHostnamesWithCookiesCallback):
(ewk_cookie_manager_hostnames_with_cookies_async_get):
* UIProcess/API/efl/ewk_cookie_manager.h:
* UIProcess/API/efl/ewk_database_manager.cpp:
(EwkDatabaseOriginsAsyncData::EwkDatabaseOriginsAsyncData):
(getDatabaseOriginsCallback):
(ewk_database_manager_origins_async_get):
* UIProcess/API/efl/ewk_database_manager.h:
* UIProcess/API/efl/ewk_storage_manager.cpp:
(EwkStorageOriginsAsyncData::EwkStorageOriginsAsyncData):
(getStorageOriginsCallback):
(ewk_storage_manager_origins_async_get):
* UIProcess/API/efl/ewk_storage_manager.h:
* UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
(timerCallback):
* UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
(EWK2CookieManagerTest::getAcceptPolicy):
(EWK2CookieManagerTest::getHostnamesWithCookies):
* UIProcess/API/efl/tests/test_ewk2_database_manager.cpp:
(EWK2DatabaseManagerTest::timerCallback):
(TEST_F):
* UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
(EWK2StorageManagerTest::timerCallback):
(TEST_F):
2014-03-18 Tim Horton <timothy_horton@apple.com>
[iOS][WebKit2] Mark layer contents as being opaque if they are
https://bugs.webkit.org/show_bug.cgi?id=130427
<rdar://problem/15540434>
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::isOpaque):
* Shared/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::RemoteLayerBackingStore):
(RemoteLayerBackingStore::ensureBackingStore):
(RemoteLayerBackingStore::encode):
(RemoteLayerBackingStore::decode):
(RemoteLayerBackingStore::display):
(RemoteLayerBackingStore::applyBackingStoreToLayer):
Move the code to set a RemoteLayerBackingStore as a CALayer's contents
from RemoteLayerTreePropertyApplier to RemoteLayerBackingStore (mostly
as a way to keep the USE(IOSURFACE) #ifs in one place).
Remove the surface() getter, because it's no longer needed, and make
image() private as it can be now (and rename it to createImageForFrontBuffer
for clarity's sake).
Add an isOpaque argument to ensureBackingStore, encode/decode it, and
add a getter. If isOpaque is true when applying backing store to the
CALayer on the UI process side, set CALayer.contentsOpaque to let CA know.
Make opaque bitmaps if not using accelerated drawing. For the IOSurface
case, we can't make opaque IOSurfaces, but telling CA that we have filled
the whole bitmap still enables similar optimizations.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::applyPropertiesToLayer):
Reset contentsOpaque if the layer loses its backing store.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):
Add a bit more logging about RemoteLayerBackingStore's opaqueness
and acceleratedness.
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::updateBackingStore):
(PlatformCALayerRemote::setOpaque):
Invalidate the RemoteLayerBackingStore if layer opaqueness changes.
2014-03-18 Brady Eidson <beidson@apple.com>
Make image controls menu work in WK2
<rdar://problem/16294412> and https://bugs.webkit.org/show_bug.cgi?id=130424
Reviewed by Tim Horton.
* Platform/SharedMemory.h:
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::Handle::~Handle):
(WebKit::SharedMemory::Handle::clear):
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::~Handle):
(WebKit::SharedMemory::Handle::clear):
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::operator=):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
* Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::controlledImageHandle):
* Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Handle::clear):
* Shared/ShareableBitmap.h:
* UIProcess/WebContextMenuProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
(WebKit::WebPageProxy::replaceControlledImage):
* UIProcess/WebPageProxy.h:
* UIProcess/efl/WebContextMenuProxyEfl.cpp:
(WebKit::WebContextMenuProxyEfl::showContextMenu):
* UIProcess/efl/WebContextMenuProxyEfl.h:
* UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::WebContextMenuProxyGtk::showContextMenu):
* UIProcess/gtk/WebContextMenuProxyGtk.h:
Add a sharing service context menu that lives side-by-side with the normal one:
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(+[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]):
(-[WKSharingServicePickerDelegate setMenuProxy:WebKit::]):
(-[WKSharingServicePickerDelegate setPicker:]):
(-[WKSharingServicePickerDelegate sharingServicePicker:delegateForSharingService:]):
(-[WKSharingServicePickerDelegate sharingService:willShareItems:]):
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
(-[WKSharingServicePickerDelegate sharingService:sourceFrameOnScreenForShareItem:]):
(-[WKSharingServicePickerDelegate sharingService:transitionImageForShareItem:contentRect:]):
(-[WKSharingServicePickerDelegate sharingService:sourceWindowForShareItems:sharingContentScope:]):
(WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
(WebKit::WebContextMenuProxyMac::setupImageServicesMenu):
(WebKit::WebContextMenuProxyMac::clearImageServicesMenu):
(WebKit::WebContextMenuProxyMac::populate):
(WebKit::WebContextMenuProxyMac::showContextMenu):
(WebKit::WebContextMenuProxyMac::window):
(WebKit::WebContextMenuProxyMac::replaceControlledImage):
* WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::show):
(WebKit::WebContextMenu::replaceControlledImage):
* WebProcess/WebPage/WebContextMenu.h:
Teach the WebProcess how to accept the replaced image.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::replaceControlledImage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2014-03-18 Anders Carlsson <andersca@apple.com>
Begin cleaning up KeyedDecoder and KeyedEncoder
https://bugs.webkit.org/show_bug.cgi?id=130431
Reviewed by Tim Horton.
* Shared/cf/KeyedDecoder.cpp:
(WebKit::KeyedDecoder::KeyedDecoder):
If we can't parse the property list data, just add an empty dictionary to the stack.
(WebKit::KeyedDecoder::decodeBool):
Remove unneeded m_dictionaryStack.last() null check. m_dictionaryStack would either be empty
or at least have a root element; it would never have a null element.
(WebKit::KeyedDecoder::decodeDouble):
Remove the same check as above and remove the CFNumberGetType checks since CFNumberGetValue will
do the type conversion for us and return false if it's lossy.
(WebKit::KeyedDecoder::decodeInt64):
Remove the m_dictionaryStack.last() check.
(WebKit::KeyedDecoder::decodeUInt32):
Ditto.
(WebKit::KeyedDecoder::decodeString):
Ditto.
(WebKit::KeyedDecoder::beginObject):
Ditto.
(WebKit::KeyedDecoder::beginArray):
Ditto.
(WebKit::KeyedDecoder::beginArrayElement):
Ditto.
* Shared/cf/KeyedDecoder.h:
Sort functions to be in the same logical order as the base class.
* Shared/cf/KeyedEncoder.cpp:
(WebKit::KeyedEncoder::finishEncoding):
Don't check for a non-null CFErrorRef here (which we incidentally never released on error). Instead,
just null check the returned CFDataRef object.
2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed typo build fix for r165846.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::decode):
2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
WebKit2 SPI to disable remote inspection on a WKWebView / WKPage
https://bugs.webkit.org/show_bug.cgi?id=130371
Reviewed by Dan Bernstein.
* Shared/WebPageCreationParameters.h:
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
Add allowsRemoteInspection bool.
* UIProcess/API/C/WKPagePrivate.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageGetAllowsRemoteInspection):
(WKPageSetAllowsRemoteInspection):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _allowsRemoteInspection]):
(-[WKWebView _setAllowsRemoteInspection:]):
Getter and setter for allowing remote inspection state.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::allowsRemoteInspection):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setAllowsRemoteInspection):
(WebKit::WebPageProxy::creationParameters):
Cached allows remote inspection state, with getter and setter.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setAllowsRemoteInspection):
When setting, call into WebCore to adjust the Page's setting.
2014-03-18 Anders Carlsson <andersca@apple.com>
REGRESSION: Visited link coloring seems to be completely broken in tip of tree
https://bugs.webkit.org/show_bug.cgi?id=130419
<rdar://problem/16337850>
Reviewed by Dan Bernstein.
Make sure to send any queued up messages before calling connectionWillOpen so we'll ensure
FIFO ordering if any messages are sent from within connectionWillOpen.
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
WebPageCreationParameters colorSpace should be MAC not COCOA
https://bugs.webkit.org/show_bug.cgi?id=130414
Reviewed by Dan Bernstein.
The colorSpace param was only set and used on Mac, not iOS.
* Shared/WebPageCreationParameters.h:
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
2014-03-18 Simon Fraser <simon.fraser@apple.com>
Dan says that options should be unsigned, and enums should be signed.
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
(NS_ENUM):
2014-03-17 Alexey Proskuryakov <ap@apple.com>
[WK2] Pass ranges over IPC in a cross-platform manner
https://bugs.webkit.org/show_bug.cgi?id=130376
Reviewed by Anders Carlsson.
Added an EditingRange class for IPC, which automatically converts to and from
NSRanges, knowing the difference between notFound and NSNotFound.
Manually applied the same fix to characterIndexForPoint.
* Scripts/webkit2/messages.py:
(struct_or_class):
* Shared/EditingRange.h: Added.
(WebKit::EditingRange::EditingRange):
(WebKit::EditingRange::isValid):
(WebKit::EditingRange::operator NSRange):
* UIProcess/API/mac/WKView.mm:
(-[WKView insertText:replacementRange:]):
(-[WKView selectedRange]):
(-[WKView hasMarkedText]):
(-[WKView setMarkedText:selectedRange:replacementRange:]):
(-[WKView markedRange]):
(-[WKView attributedSubstringForProposedRange:actualRange:]):
(-[WKView characterIndexForPoint:]):
(-[WKView firstRectForCharacterRange:actualRange:]):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setMarkedText:selectedRange:]):
(-[WKContentView insertText:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setComposition):
(WebKit::WebPageProxy::insertText):
(WebKit::WebPageProxy::insertDictatedText):
(WebKit::WebPageProxy::getMarkedRange):
(WebKit::WebPageProxy::getSelectedRange):
(WebKit::WebPageProxy::getAttributedSubstringFromRange):
(WebKit::WebPageProxy::firstRectForCharacterRange):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setComposition):
(WebKit::WebPageProxy::insertText):
(WebKit::WebPageProxy::insertDictatedText):
(WebKit::WebPageProxy::getMarkedRange):
(WebKit::WebPageProxy::getSelectedRange):
(WebKit::WebPageProxy::getAttributedSubstringFromRange):
(WebKit::WebPageProxy::firstRectForCharacterRange):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::rangeFromEditingRange):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setComposition):
(WebKit::WebPage::insertText):
(WebKit::WebPage::insertDictatedText):
(WebKit::WebPage::getMarkedRange):
(WebKit::WebPage::getSelectedRange):
(WebKit::WebPage::getAttributedSubstringFromRange):
(WebKit::WebPage::firstRectForCharacterRange):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setComposition):
(WebKit::WebPage::insertText):
(WebKit::WebPage::insertDictatedText):
(WebKit::WebPage::getMarkedRange):
(WebKit::WebPage::getSelectedRange):
(WebKit::WebPage::getAttributedSubstringFromRange):
(WebKit::WebPage::characterIndexForPoint):
(WebKit::WebPage::firstRectForCharacterRange):
2014-03-17 Filip Pizlo <fpizlo@apple.com>
More FTL enabling.
Rubber stamped by Dan Bernstein.
* Configurations/FeatureDefines.xcconfig:
2014-03-17 Simon Fraser <simon.fraser@apple.com>
Renable pagination mode in WK2 MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=130374
Reviewed by Anders Carlsson.
Add SPI for pagination mode.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _paginationMode]):
(-[WKWebView _setPaginationMode:]):
(-[WKWebView _paginationBehavesLikeColumns]):
(-[WKWebView _setPaginationBehavesLikeColumns:]):
(-[WKWebView _pageLength]):
(-[WKWebView _setPageLength:]):
(-[WKWebView _gapBetweenPages]):
(-[WKWebView _setGapBetweenPages:]):
(-[WKWebView _pageCount]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
(NS_ENUM):
2014-03-18 Ryuan Choi <ryuan.choi@samsung.com>
[CMAKE][WK2]Move CoordinatedGraphics related files out of WebKit2/CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=130390
Reviewed by Martin Robinson.
Now, only EFL port use CoordinatedGraphics among CMake based ports.
* CMakeLists.txt:
* PlatformEfl.cmake:
* PlatformGTK.cmake: Removed CoordinatedGraphics related files.
2014-03-18 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Race condition when the socket event source is cancelled
https://bugs.webkit.org/show_bug.cgi?id=130395
Reviewed by Martin Robinson.
In some cases when the socket event source is cancelled the socket
event source callback is called with the condition of the previous
poll instead of 0. This can happen sometimes when the source is
cancelled from the socket event source callback. Once the socket
event source is cancelled, it's dispatched by glib without
polling, so the condition is never reset again and the callback is
called again and again with the previous condition. When the
condition is G_IO_IN, the source is re-scheduled entering into an
infinite loop. We should always check if the source has been
cancelled at the beginning of the callback to destroy the source
instead of relying on the condition being 0.
* Platform/gtk/WorkQueueGtk.cpp:
(WorkQueue::SocketEventSource::isCancelled):
(WorkQueue::SocketEventSource::eventCallback):
2014-03-18 Csaba Osztrogonác <ossy@webkit.org>
[GTK] URTFB after r165789. Stub function added.
* WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
(WebKit::InjectedBundle::setBundleParameter):
2014-03-17 Jaehun Lim <ljaehun.lim@samsung.com>
Unreviewed, EFL build fix after r165789
* WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
(WebKit::InjectedBundle::setBundleParameter): Implemented.
2014-03-17 Jae Hyun Park <jaepark@webkit.org>
[GTK] Build fix for debug build
Unreviewed.
finalizedListItem was actually used in ASSERT. So, use ASSERT_UNUSED
instead of ASSERT.
* UIProcess/API/gtk/WebKitBackForwardListItem.cpp:
(webkitBackForwardListItemFinalized):
2014-03-17 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WK2] Getting rid of compilation warnings
https://bugs.webkit.org/show_bug.cgi?id=130348
Reviewed by Benjamin Poulain.
* UIProcess/API/APIHistoryClient.h:
(API::HistoryClient::didPerformClientRedirect):
(API::HistoryClient::didPerformServerRedirect):
(API::HistoryClient::didUpdateHistoryTitle):
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::didStartProvisionalLoadForFrame):
(API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(API::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
(API::LoaderClient::didCommitLoadForFrame):
(API::LoaderClient::didFinishLoadForFrame):
(API::LoaderClient::didFailLoadWithErrorForFrame):
(API::LoaderClient::didChangeBackForwardList):
* UIProcess/API/APIPolicyClient.h:
(API::PolicyClient::decidePolicyForNavigationAction):
(API::PolicyClient::decidePolicyForNewWindowAction):
(API::PolicyClient::decidePolicyForResponse):
(API::PolicyClient::unableToImplementPolicy):
* UIProcess/API/APIUIClient.h:
(API::UIClient::exceededDatabaseQuota):
(API::UIClient::saveDataToFileInDownloadsFolder):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/APISession.cpp:
(API::generateID):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::viewStateDidChange):
2014-03-17 Anders Carlsson <andersca@apple.com>
Update the bundle parameters dictionary and send out KVO notifications
https://bugs.webkit.org/show_bug.cgi?id=130379
<rdar://problem/16213914>
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _setObject:forBundleParameter:]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:
(-[WKWebProcessBundleParameters setParameter:forKey:]):
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::setBundleParameter):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setInjectedBundleParameter):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2014-03-17 Tim Horton <timothy_horton@apple.com>
Address some style nits.
* UIProcess/API/Cocoa/_WKThumbnailViewInternal.h:
2014-03-17 Simon Fraser <simon.fraser@apple.com>
Address some style nits.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-03-17 Simon Fraser <simon.fraser@apple.com>
Add transparent window support back into MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=130363
Reviewed by Anders Carlsson.
Expose SPI for transparent window support.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _drawsTransparentBackground]):
(-[WKWebView _setDrawsTransparentBackground:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-03-17 Alexey Proskuryakov <ap@apple.com>
Undo some accidental Gtk changes from http://trac.webkit.org/changeset/165759
* UIProcess/WebPageProxy.cpp:
* WebProcess/WebPage/WebPage.messages.in:
2014-03-17 Csaba Osztrogonác <ossy@webkit.org>
[WK2] URTBF after r165755 for non Apple platforms, stub functions added.
* WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
(WebKit::InjectedBundle::platformInitialize):
* WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
(WebKit::InjectedBundle::platformInitialize):
2014-03-17 Alexey Proskuryakov <ap@apple.com>
Move convertToRange() helper to cross-platform WebPage.cpp
https://bugs.webkit.org/show_bug.cgi?id=130365
Reviewed by Tim Horton.
Also renamed it to rangeFromEditingLocationAndLength().
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::rangeFromEditingLocationAndLength):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::insertText):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setComposition):
(WebKit::WebPage::insertText):
(WebKit::WebPage::insertDictatedText):
(WebKit::WebPage::getAttributedSubstringFromRange):
(WebKit::WebPage::characterIndexForPoint):
(WebKit::WebPage::firstRectForCharacterRange):
2014-03-17 Anders Carlsson <andersca@apple.com>
Follow-up fix.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h:
2014-03-17 Enrica Casucci <enrica@apple.com>
WK2: support data detectors driven action sheet..
https://bugs.webkit.org/show_bug.cgi?id=130362
<rdar://problem/16319711>
Reviewed by Benjamin Poulain.
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant showDataDetectorsSheet]):
2014-03-17 Anders Carlsson <andersca@apple.com>
Fix 32-bit OS X build.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::platformInitialize):
2014-03-17 Jae Hyun Park <jaepark@webkit.org>
[GTK][CMake] Fix WebKit2 unused parameter warnings
https://bugs.webkit.org/show_bug.cgi?id=130316
Reviewed by Martin Robinson.
* Platform/gtk/WorkQueueGtk.cpp: Fix unused parameter warnings.
* UIProcess/API/gtk/PageClientImpl.cpp: Ditto.
* UIProcess/API/gtk/WebKitBackForwardListItem.cpp: Ditto.
* UIProcess/API/gtk/WebKitContextMenuClient.cpp: Ditto.
* UIProcess/API/gtk/WebKitContextMenuItem.cpp: Ditto.
* UIProcess/API/gtk/WebKitDownloadClient.cpp: Ditto.
* UIProcess/API/gtk/WebKitFaviconDatabase.cpp: Ditto.
* UIProcess/API/gtk/WebKitFindController.cpp: Ditto.
* UIProcess/API/gtk/WebKitFormClient.cpp: Ditto.
* UIProcess/API/gtk/WebKitGeolocationProvider.cpp: Ditto.
* UIProcess/API/gtk/WebKitLoaderClient.cpp: Ditto.
* UIProcess/API/gtk/WebKitPlugin.cpp: Ditto.
* UIProcess/API/gtk/WebKitPolicyClient.cpp: Ditto.
* UIProcess/API/gtk/WebKitRequestManagerClient.cpp: Ditto.
* UIProcess/API/gtk/WebKitTextChecker.cpp: Ditto.
* UIProcess/API/gtk/WebKitUIClient.cpp: Ditto.
* UIProcess/API/gtk/WebKitURISchemeRequest.cpp: Ditto.
* UIProcess/API/gtk/WebKitWebContext.cpp: Ditto.
* UIProcess/API/gtk/WebKitWebInspector.cpp: Ditto.
* UIProcess/API/gtk/WebKitWebView.cpp: Ditto.
* UIProcess/API/gtk/WebKitWebViewBase.cpp: Ditto.
* UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp: Ditto.
* UIProcess/API/gtk/WebViewBaseInputMethodFilter.cpp: Ditto.
* UIProcess/gtk/TextCheckerGtk.cpp: Ditto.
* UIProcess/gtk/WebContextMenuProxyGtk.cpp: Ditto.
* UIProcess/gtk/WebPopupMenuProxyGtk.cpp: Ditto.
* WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp: Ditto.
* WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp: Ditto.
* WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: Ditto.
* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: Ditto.
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Ditto.
2014-03-17 Alexey Proskuryakov <ap@apple.com>
[Mac] Standardize on start/length in text input IPC methods
https://bugs.webkit.org/show_bug.cgi?id=130359
Reviewed by Anders Carlsson.
Some IPC methods used start/length, and others use start/end. This was confusing.
While here, changed WebPageMac.mm to not use NSMakeRange where we don't need it
(I want to move this code to WebPage.cpp, where it could be shared with iOS and
other platforms, as it doesn't depend on Foundation much).
* UIProcess/API/mac/WKView.mm:
(-[WKView insertText:replacementRange:]):
(-[WKView setMarkedText:selectedRange:replacementRange:]):
(-[WKView attributedSubstringForProposedRange:actualRange:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setComposition):
(WebKit::WebPageProxy::insertText):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setComposition):
(WebKit::WebPageProxy::insertText):
(WebKit::WebPageProxy::insertDictatedText):
(WebKit::WebPageProxy::getAttributedSubstringFromRange):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setComposition):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setComposition):
(WebKit::WebPage::insertText):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setComposition):
(WebKit::WebPage::insertText):
(WebKit::WebPage::insertDictatedText):
(WebKit::WebPage::getAttributedSubstringFromRange):
(WebKit::convertToRange):
(WebKit::WebPage::firstRectForCharacterRange):
2014-03-17 Tim Horton <timothy_horton@apple.com>
Rename WKThumbnailView to _WKThumbnailView
https://bugs.webkit.org/show_bug.cgi?id=130361
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/_WKThumbnailView.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKThumbnailView.h.
* UIProcess/API/Cocoa/_WKThumbnailView.mm: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKThumbnailView.mm.
(-[_WKThumbnailView initWithFrame:fromWKView:]):
(-[_WKThumbnailView _viewWasUnparented]):
(-[_WKThumbnailView _viewWasParented]):
(-[_WKThumbnailView _requestSnapshotIfNeeded]):
(-[_WKThumbnailView _didTakeSnapshot:]):
(-[_WKThumbnailView viewDidMoveToWindow]):
(-[_WKThumbnailView setScale:]):
(-[_WKThumbnailView setUsesSnapshot:]):
(-[_WKThumbnailView _setThumbnailLayer:]):
(-[_WKThumbnailView _thumbnailLayer]):
* UIProcess/API/Cocoa/_WKThumbnailViewInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKThumbnailViewInternal.h.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setThumbnailView:]):
(-[WKView _thumbnailView]):
(-[WKView _updateThumbnailViewLayer]):
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/mac/PageClientImpl.mm:
* WebKit2.xcodeproj/project.pbxproj:
2014-03-17 Anders Carlsson <andersca@apple.com>
Add SPI for getting bundle parameters from the injected bundle
https://bugs.webkit.org/show_bug.cgi?id=130355
Reviewed by Dan Bernstein.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h: Copied from Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm: Copied from Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h.
(-[WKWebProcessBundleParameters initWithDictionary:]):
(-[WKWebProcessBundleParameters valueForKey:]):
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
(-[WKWebProcessPlugInController parameters]):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::InjectedBundle):
* WebProcess/InjectedBundle/InjectedBundle.h:
(WebKit::InjectedBundle::create):
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::bundleParameters):
(WebKit::InjectedBundle::platformInitialize):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
2014-03-17 Brent Fulgham <bfulgham@apple.com>
Provide preference to enable additional AVFoundation options
https://bugs.webkit.org/show_bug.cgi?id=130275
Reviewed by Eric Carlson.
* Shared/WebPreferencesStore.h: Added new preference.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetEnableInheritURIQueryComponent): Added.
(WKPreferencesGetEnableInheritURIQueryComponent): Added.
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Handle new preference.
2014-03-17 Alexey Proskuryakov <ap@apple.com>
[Mac] getAttributedSubstringFromRange arguments are incorrectly named
https://bugs.webkit.org/show_bug.cgi?id=130349
Reviewed by Tim Horton.
There is a mess of start/end and start/length pairs in IPC. One day we'll fix them
all, but now, let's at least name them correctly.
No behavior change.
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::getAttributedSubstringFromRange):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::getAttributedSubstringFromRange):
2014-03-17 Tim Horton <timothy_horton@apple.com>
WKThumbnailView should support snapshots
https://bugs.webkit.org/show_bug.cgi?id=130335
<rdar://problem/16255139>
Reviewed by Simon Fraser.
Add a mode where WKThumbnailView takes a software snapshot of the web content,
replacing the live layer tree with said snapshot once it returns from the
web process. This may improve animation performance in cases where the
layer tree would otherwise be very complex.
* UIProcess/API/Cocoa/WKThumbnailView.h:
Add a property, usesSnapshot, which determines whether the thumbnail view
should use the live layer tree or a snapshot of the content.
* UIProcess/API/Cocoa/WKThumbnailView.mm:
(-[WKThumbnailView initWithFrame:fromWKView:]):
(-[WKThumbnailView _viewWasUnparented]):
Clear the snapshot when unparented.
(-[WKThumbnailView _viewWasParented]):
Take a snapshot of the web content when parented, if needed.
(-[WKThumbnailView _requestSnapshotIfNeeded]):
If we're using snapshots, and haven't already dispatched an async snapshot request,
and don't already have a snapshot, request a snapshot from the web process.
When it returns, use it as the contents of the WKThumbnailView layer, and
unparent the live layer tree.
(-[WKThumbnailView setScale:]):
(-[WKThumbnailView setUsesSnapshot:]):
(-[WKThumbnailView _setThumbnailLayer:]):
(-[WKThumbnailView _thumbnailLayer]):
* UIProcess/API/Cocoa/WKThumbnailViewInternal.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _setAcceleratedCompositingModeRootLayer:]):
(-[WKView _acceleratedCompositingModeRootLayer]):
WKView should always keep track of the current root layer, instead of totally
handing control over to WKThumbnailView when it is used.
(-[WKView _setThumbnailView:]):
(-[WKView _updateThumbnailViewLayer]):
(-[WKView _reparentLayerTreeInThumbnailView]):
If needed (either we're not using snapshots, or still waiting for the snapshot to be painted),
push the WKView's live layer tree into the thumbnail view.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::takeThumbnailSnapshot):
Add a message that asynchronously returns a snapshot that respects the
current thumbnail scale and position.
(WebKit::WebPage::scaledSnapshotWithOptions):
Use some nullptr.
* WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::transform):
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
Add a getter for the DrawingArea's transform.
Rename it to rootLayerTransform.
2014-03-17 Zan Dobersek <zdobersek@igalia.com>
Use RunLoop objects through references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=130313
Reviewed by Andreas Kling.
Adjust the code accordingly now that RunLoop::current() and RunLoop::main()
return RunLoop reference instead of a pointer.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::didClose):
(WebKit::DatabaseProcess::didReceiveInvalidMessage):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::postMainThreadTask):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::didReceiveInvalidMessage):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest):
* Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::getOrCreate):
(IPC::Connection::SyncMessageState::SyncMessageState):
(IPC::Connection::SyncMessageState::~SyncMessageState):
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::SyncMessageState::dispatchMessages):
(IPC::Connection::createServerConnection):
(IPC::Connection::createClientConnection):
(IPC::Connection::Connection):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::wakeUpRunLoop):
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.cpp:
(IPC::Connection::receiveSourceEventHandler):
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::stopRunLoop):
* Shared/Plugins/NPObjectProxy.cpp:
(WebKit::NPObjectProxy::NP_Deallocate):
* 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):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getOrigins):
(WebKit::StorageManager::getStorageDetailsByOrigin):
* UIProcess/Storage/StorageManager.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::pluginThreadAsyncCall):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::unprotectPluginFromDestruction):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
2014-03-17 Giovanni Campagna <gcampagna@src.gnome.org>
[GTK] Don't busy loop when the socket is full
https://bugs.webkit.org/show_bug.cgi?id=129802
Reviewed by Carlos Garcia Campos.
When the socket is full and we see EAGAIN or EWOULDBLOCK
(because the socket is non blocking), don't busy loop by
tring to write again, instead poll() until the socket
becomes writable.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::sendOutgoingMessage):
2014-03-17 Martin Robinson <mrobinson@igalia.com>
[GTK][CMake] Ensure that HAVE_GTK_UNIX_PRINTING is defined when appropriate
https://bugs.webkit.org/show_bug.cgi?id=130155
Reviewed by Philippe Normand.
* PlatformGTK.cmake: Add GTK_UNIX_PRINT flags to the build.
2014-03-17 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Restore cursor when moving mouse into webview
https://bugs.webkit.org/show_bug.cgi?id=130182
Reviewed by Gyuyoung Kim.
We changed mouse cursor when the type of cursor is changed.
But once mouse is moved out of webview, ewebkit will not know whether cursor
is changed or not.
So, this patch added a logic to restore the last applied type of cursor when
mouse is moved into webview again.
* UIProcess/API/efl/EwkView.cpp:
(EwkViewEventHandler<EVAS_CALLBACK_MOUSE_IN>::handleEvent):
Call updateCursor to restore the last applied type of cursor.
(EwkView::EwkView):
(EwkView::updateCursor): Extracted from setCursor.
(EwkView::setCursor):
(EwkView::handleEvasObjectAdd):
* UIProcess/API/efl/EwkView.h:
2014-03-16 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Add ewk_application_cache_manager APIs
https://bugs.webkit.org/show_bug.cgi?id=102853
Reviewed by Gyuyoung Kim.
Implemented application cache manager to get list of origins which stores
application cache and remove specified origin or all.
* PlatformEfl.cmake: Added newly added files.
* UIProcess/API/efl/ewk_application_cache_manager.cpp: Added.
(EwkApplicationCacheManager::EwkApplicationCacheManager):
(EwkApplicationCacheManager::~EwkApplicationCacheManager):
(Get_Origins_Data::Get_Origins_Data):
(getApplicationCacheOriginsCallback):
(ewk_application_cache_manager_origins_get):
(ewk_application_cache_origins_free):
(ewk_application_cache_manager_delete_all):
(ewk_application_cache_manager_delete):
* UIProcess/API/efl/ewk_application_cache_manager.h: Added.
* UIProcess/API/efl/ewk_application_cache_manager_private.h: Added.
(EwkApplicationCacheManager::impl):
* UIProcess/API/efl/ewk_context.cpp:
(EwkContext::applicationCacheManager):
(ewk_context_application_cache_manager_get):
* UIProcess/API/efl/ewk_context.h:
* UIProcess/API/efl/ewk_context_private.h:
* UIProcess/API/efl/ewk_security_origin_private.h:
(EwkSecurityOrigin::wkSecurityOrigin):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
(EWK2UnitTestServer::port):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:
* UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
Added to test application_cache_manager.
(serverCallback):
(getOriginsCallback):
(timerCallback):
(TEST_F):
* UIProcess/API/efl/tests/test_ewk2_context.cpp:
Added test case to test getter of application_cache_manager.
(TEST_F):
2014-03-16 Zan Dobersek <zdobersek@igalia.com>
Move GTK WebKit2 code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=129672
Reviewed by Anders Carlsson.
Repace uses of OwnPtr and PassOwnPtr in GTK-specific WebKit2 code with std::unique_ptr.
* Shared/Downloads/Download.h:
* Shared/Downloads/soup/DownloadSoup.cpp:
(WebKit::Download::start):
(WebKit::Download::startWithHandle):
(WebKit::Download::platformInvalidate):
* UIProcess/API/gtk/PageClientImpl.cpp:
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/gtk/WebKitContextMenuItem.cpp:
(webkitContextMenuItemCreate):
(webkitContextMenuItemCreateForGtkItem):
(webkit_context_menu_item_new):
(webkit_context_menu_item_new_from_stock_action):
(webkit_context_menu_item_new_from_stock_action_with_label):
(webkit_context_menu_item_new_with_submenu):
(webkit_context_menu_item_new_separator):
* UIProcess/API/gtk/WebKitTextChecker.h:
* UIProcess/API/gtk/WebKitWebContext.cpp:
(createDefaultWebContext):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseConstructed):
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::print):
* WebProcess/gtk/WebGtkExtensionManager.cpp:
(WebKit::WebGtkExtensionManager::initialize):
* WebProcess/soup/WebKitSoupRequestInputStream.cpp:
(webkitSoupRequestInputStreamPendingReadAsyncComplete):
(webkitSoupRequestInputStreamReadAsync):
* WebProcess/soup/WebSoupRequestManager.cpp:
(WebKit::WebSoupRequestManager::send):
* WebProcess/soup/WebSoupRequestManager.h:
2014-03-16 Brian Burg <bburg@apple.com>
Web Inspector: vended backend commands file should be generated as part of the build
https://bugs.webkit.org/show_bug.cgi?id=130110
Reviewed by Timothy Hatcher.
* PlatformGTK.cmake: Copy over generated inspector backend commands files.
2014-03-16 Darin Adler <darin@apple.com>
Try to fix 32-bit Mac build.
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Add missing include.
2014-03-16 Philippe Normand <pnormand@igalia.com>
Unreviewed, GTK build fix after r165692.
* UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
2014-03-15 Darin Adler <darin@apple.com>
Remove all uses of deprecatedCharacters from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=130197
Reviewed by Andreas Kling.
* Shared/APIString.h: Rewrote getCharacters to use StringView,
substring, and getCharactersWithUpconvert. Added an 8-bit case
to getUTF8CString.
* Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
(WebKit::writeByte): Added.
(WebKit::writeCharacter): Added.
(WebKit::writeLine): Added. Uses operator[] instead of characters16 to get
the UTF-16 characters out of the string.
(WebKit::NetscapePluginModule::scanPlugin): Replaced code that writes out
text to stdout with much simpler version using the functions above.
* UIProcess/TextChecker.h: Changed text arguments to use StringView instead
of UChar/int pairs.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu): Updated to pass StringView.
* UIProcess/efl/TextCheckerEfl.cpp:
(WebKit::nextWordOffset): Changed function to use StringView and unsigned.
(WebKit::TextChecker::checkTextOfParagraph): Changed to use StringView and
substring.
(WebKit::TextChecker::checkSpellingOfString): Ditto.
(WebKit::TextChecker::checkGrammarOfString): Ditto.
(WebKit::TextChecker::requestCheckingOfString): Pass in a StringView, so no
need to call deprecatedCharacters.
* UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph): Changed to take StringView.
(WebKit::TextChecker::checkSpellingOfString): Ditto.
(WebKit::TextChecker::checkGrammarOfString): Ditto.
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph): Changed to take StringView and
use StringView::createNSStringWithoutCopying.
(WebKit::TextChecker::checkSpellingOfString): CHanged to take StringView.
(WebKit::TextChecker::checkGrammarOfString): Ditto.
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
(WebKit::convertStringToKeyCodes): Changed to take StringView and use
upconvertedCharacters instead of deprecatedCharacters. Also use move instead
of swap.
(WebKit::NetscapePlugin::sendComplexTextInput): Updated to new style for loop.
* WebProcess/WebPage/EncoderAdapter.cpp:
(WebKit::EncoderAdapter::encodeString): Use StringView::upconvertedCharacters
instead of String::deprecatedCharacters.
2014-03-15 David Kilzer <ddkilzer@apple.com>
[iOS] Define SYSTEM_VERSION_PREFIX consistently
<http://webkit.org/b/130293>
<rdar://problem/15926359>
Reviewed by Dan Bernstein.
* Configurations/Version.xcconfig:
(SYSTEM_VERSION_PREFIX): Sync with
Source/WebKit/mac/Version.xcconfig.
2014-03-14 Alexey Proskuryakov <ap@apple.com>
[Mac] Sync extended attribute related rules with AppSandbox profile
https://bugs.webkit.org/show_bug.cgi?id=130263
<rdar://problem/16318965>
Reviewed by Sam Weinig.
Update the fix to use a different syntax in some OS versions.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
* WebProcess/com.apple.WebProcess.sb.in:
2014-03-14 Ryosuke Niwa <rniwa@webkit.org>
Revert erroneous changes made to UIProcess/API/Cocoa in r165676.
* UIProcess/API/Cocoa/WKBackForwardList.h:
* UIProcess/API/Cocoa/WKBackForwardListItem.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListItem.h.
* UIProcess/API/Cocoa/WKNavigation.h:
* UIProcess/API/Cocoa/WKNavigationAction.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationAction.h.
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
(NS_ENUM):
* UIProcess/API/Cocoa/WKNavigationResponse.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationResponse.h.
* UIProcess/API/Cocoa/WKNavigationTrigger.h: Removed.
* UIProcess/API/Cocoa/WKWebView.h:
2014-03-14 Mark Rowe <mrowe@apple.com>
Fix the production build.
Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't
be at the expected relative path when working from installed source.
* Configurations/Base.xcconfig:
2014-03-14 Maciej Stachowiak <mjs@apple.com>
Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
https://bugs.webkit.org/show_bug.cgi?id=130276
<rdar://problem/16266927>
Reviewed by Simon Fraser.
* Shared/AsyncRequest.cpp:
* Shared/AsyncRequest.h:
* Shared/ContextMenuContextData.cpp:
* Shared/ContextMenuContextData.h:
* Shared/Databases/DatabaseProcessCreationParameters.h:
* Shared/Databases/IndexedDB/IDBUtilities.cpp:
* Shared/Databases/IndexedDB/IDBUtilities.h:
* Shared/mac/RemoteLayerBackingStore.h:
* Shared/mac/RemoteLayerBackingStore.mm:
* UIProcess/API/Cocoa/WKBackForwardList.h:
* UIProcess/API/Cocoa/WKBackForwardListItem.h: Removed.
* UIProcess/API/Cocoa/WKNavigation.h:
* UIProcess/API/Cocoa/WKNavigationAction.h: Removed.
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/API/Cocoa/WKNavigationResponse.h: Removed.
* UIProcess/API/Cocoa/WKNavigationTrigger.h: Added.
(NS_ENUM):
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp:
* UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.h:
* UIProcess/CoordinatedGraphics/WKCoordinatedSceneAPICast.h:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
* WebProcess/WebCoreSupport/WebAlternativeTextClient.h:
* WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
* WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
* WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
2014-03-14 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] background-attachment: fixed renders oddly, moves around
https://bugs.webkit.org/show_bug.cgi?id=130277
<rdar://problem/16332883>
Reviewed by Tim Horton.
Actually send scrolling and counter-scrolling layers to the UI process!
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
2014-03-14 Anders Carlsson <andersca@apple.com>
Try to fix the iOS build.
* UIProcess/mac/WebContextMac.mm:
2014-03-14 Anders Carlsson <andersca@apple.com>
Begin work on the bundle parameter API
https://bugs.webkit.org/show_bug.cgi?id=130267
Reviewed by Dan Bernstein.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _objectForBundleParameter:]):
(-[WKProcessPool _setObject:forBundleParameter:]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/WebContext.h:
(WebKit::WebContext::bundleParameters):
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::ensureBundleParameters):
(WebKit::WebContext::platformInitializeWebProcess):
2014-03-14 Alexey Proskuryakov <ap@apple.com>
[Mac] Sync extended attribute related rules with AppSandbox profile
https://bugs.webkit.org/show_bug.cgi?id=130263
<rdar://problem/16318965>
Reviewed by Sam Weinig.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* Resources/PlugInSandboxProfiles/com.apple.QuickTime Plugin.plugin.sb:
* Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
* Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
* Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb:
* Resources/PlugInSandboxProfiles/com.microsoft.SilverlightPlugin.sb:
* Resources/PlugInSandboxProfiles/com.oracle.java.JavaAppletPlugin.sb:
* WebProcess/com.apple.WebProcess.sb.in:
2014-03-14 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Improve behavior of fixed elments on zooming
https://bugs.webkit.org/show_bug.cgi?id=130253
Reviewed by Beth Dakin.
Correctly reposition right- and bottom-relative position:fixed
elements on zooming in WK2 iOS by telling the scrolling tree
about zoom-related viewport changes.
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
Drive-by cleanup; typedef the flags field to an unsigned, to avoid ugly casting.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree): Pass out a flag to say
if the update contained a new fixed or sticky layer.
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
(WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):
Call into the new ScrolingTree::viewportChangedViaDelegatedScrolling().
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: If we got a new fixed
or sticky layer, set fixedOrStickyLayerChanged to true.
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): Ditto.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
Remember both the old zoomScale and the filteredScale, since the fixed position rect
should be computed using the unfiltered scale.
Some FloatRect -> CGRect changes.
Now call viewportChangedViaDelegatedScrolling() on the scrolling coordinator.
(-[WKContentView fixedPositionRectFromExposedRect:scale:]): Call the
FrameView function to compute the iOS fixed position rect.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): If the update
got a new fixed or sticky layer, run the scrolling tree logic to make sure
it gets into the right place.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree): If we logged here,
we'd log twice if the tiled scrolling indicator was enabled, so
hoisted the logging out into the caller.
2014-03-14 Landry Breuil <landry@openbsd.org>
Use the correct type in webkitSoupRequestInputStreamNew()'s declaration.
Nhttps://bugs.webkit.org/show_bug.cgi?id=129974
Reviewed by Andreas Kling.
* WebProcess/soup/WebKitSoupRequestInputStream.h:
2014-03-14 Anders Carlsson <andersca@apple.com>
Fix crash when resizing the visited link table
https://bugs.webkit.org/show_bug.cgi?id=130257
<rdar://problem/16328177>
Reviewed by Dan Bernstein.
We're iterating over the old table, so use currentTableSize in the loop termination condition.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::resizeTable):
2014-03-14 Dan Bernstein <mitz@apple.com>
[Cocoa] Expose a way to set the cookie accept policy
https://bugs.webkit.org/show_bug.cgi?id=130251
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(toHTTPCookieAcceptPolicy): Added a helper function that maps from NSHTTPCookieAcceptPolicy
values to WebKit::HTTPCookieAcceptPolicy values.
(-[WKProcessPool _setCookieAcceptPolicy:]): Added. Calls
WebCookieManagerProxy::setHTTPCookieAcceptPolicy.
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Declared new method.
2014-03-14 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebKit2WebExtension GIR can't be used in vala
https://bugs.webkit.org/show_bug.cgi?id=127179
Reviewed by Martin Robinson.
Do not include all WebKit2 gir symbols from WebKit2WebExtension gir
file.
* GNUmakefile.am:
* PlatformGTK.cmake:
2014-03-14 Csaba Osztrogonác <ossy@webkit.org>
[CMake] URTBF after r165619.
* CMakeLists.txt: Add new files.
2014-03-14 Anders Carlsson <andersca@apple.com>
Remove WebContext::addVisitedLink
https://bugs.webkit.org/show_bug.cgi?id=130242
Reviewed by Dan Bernstein.
Fold the function into WKContextAddVisitedLink instead.
* UIProcess/API/C/WKContext.cpp:
(WKContextAddVisitedLink):
* UIProcess/WebContext.cpp:
* UIProcess/WebContext.h:
(WebKit::WebContext::visitedLinkProvider):
2014-03-13 Anders Carlsson <andersca@apple.com>
Move visited link handling to VisitedLinkTableController and VisitedLinkProvider
https://bugs.webkit.org/show_bug.cgi?id=130223
<rdar://problem/16315792>
Reviewed by Dan Bernstein.
* DerivedSources.make:
Generate messages for VisitedLinkProvider and VisitedLinkTableController.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
Set the visited link provider.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.h:
Add addVisitedLinkWithURL: method.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:
(-[_WKVisitedLinkProvider addVisitedLinkWithURL:]):
Compute a link hash from the absolute URL string and pass it to the underlying VisitedLinkProvider object.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::addProcess):
Add the process to the m_processes HashCountedSet. If it's the first time we're adding the process,
add the VisitedLinkProvider object as a message receiver and send the visited link table to the process.
(WebKit::VisitedLinkProvider::removeProcess):
Remove the process from the m_processes HashCountedSet. If we're removing the last reference to the process,
remove ourselves as a message receiver.
(WebKit::VisitedLinkProvider::addVisitedLinkHash):
Rename this from addVisitedLink to better indicate what it's doing.
(WebKit::tableSizeForKeyCount):
Update for constant rename.
(WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
Compute the new pending visited links table size. If it's bigger than our current table, resize the table
by calling resizeTable. Otherwise, simply try to add the pending hashes to our shared hash table. If successful,
add the link hash to the addedVisitedLinks table and eventually send it to all processes associated with the visited link provider.
(WebKit::VisitedLinkProvider::resizeTable):
Create a new shared memory segment, Set it as the table backing store and add all visited links from the old table. Finally,
add our pending visited link hashes and send the new table memory to all processes associated with the visited link provider.
(WebKit::VisitedLinkProvider::sendTable):
Helper function that creates a shared memory handle and sends it to a given web process.
* UIProcess/VisitedLinkProvider.h:
Add new members.
* UIProcess/VisitedLinkProvider.messages.in:
Add messages.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::processDidFinishLaunching):
(WebKit::WebContext::disconnectProcess):
The WebContext no longer needs to inform the visited link provider about the processes coming and going, that's already handled
by the WebPageProxy objects.
(WebKit::WebContext::addVisitedLink):
Call addVisitedLinkHash on the visited link provider.
* UIProcess/WebContext.h:
* UIProcess/WebContext.messages.in:
Remove a message that is now implemented by the visited link provider.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::VisitedLinkTableController):
Add the table controller as a message receiver.
(WebKit::VisitedLinkTableController::~VisitedLinkTableController):
Remove the table controller as a message receiver.
(WebKit::VisitedLinkTableController::isLinkVisited):
Check if the link is visited according to the visited link table.
(WebKit::VisitedLinkTableController::addVisitedLink):
Send the link hash to the UI process if it's not already visited.
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
Set the backing store memory and invalidate all styles.
(WebKit::VisitedLinkTableController::visitedLinkStateChanged):
Invalidate the styles for the given links.
(WebKit::VisitedLinkTableController::allVisitedLinkStateChanged):
Invalidate the styles for all links.
* WebProcess/WebPage/VisitedLinkTableController.h:
Add new members.
* WebProcess/WebPage/VisitedLinkTableController.messages.in:
Add new messages.
* WebProcess/WebProcess.cpp:
Remove unused functions; these are handled by VisitedLinkTableController now.
* WebProcess/WebProcess.h:
(WebKit::WebProcess::shouldTrackVisitedLinks):
Add getter.
* WebProcess/WebProcess.messages.in:
Remove messages.
2014-03-12 Sergio Villar Senin <svillar@igalia.com>
Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL
https://bugs.webkit.org/show_bug.cgi?id=129612
Reviewed by Darin Adler.
For new code use static NeverDestroyed<T> instead.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::getIndexStatement):
(WebKit::getObjectStoreStatement):
* Shared/linux/SeccompFilters/SeccompBroker.cpp:
(WebKit::SeccompBrokerClient::shared):
* UIProcess/InspectorServer/WebInspectorServer.cpp:
(WebKit::WebInspectorServer::didReceiveWebSocketUpgradeHTTPRequest):
2014-03-14 Dan Bernstein <mitz@apple.com>
<rdar://problem/16319722> [Cocoa] WKHistoryDelegate is being called for subframes
https://bugs.webkit.org/show_bug.cgi?id=130228
Reviewed by Mark Rowe.
* UIProcess/Cocoa/HistoryClient.mm:
(WebKit::HistoryClient::didNavigateWithNavigationData): Bail out if the frame is not the
main frame.
(WebKit::HistoryClient::didPerformClientRedirect): Ditto.
(WebKit::HistoryClient::didPerformServerRedirect): Ditto.
(WebKit::HistoryClient::didUpdateHistoryTitle): Ditto.
2014-03-13 Jinwoo Jeong <jw00.jeong@samsung.com>
Refactor Vibration algorithm to use only one timer.
https://bugs.webkit.org/show_bug.cgi?id=130059
Reviewed by Darin Adler.
This patch adds a vibration unit test regression after r161257.
It consists of two short term requests to check
that Vibration could work properly by sequential requests.
Indeed this patch tightens condition of existing tests.
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
2014-03-13 Paul Hankes Drielsma <phd@apple.com>
Add SPI to set a custom user agent on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=130164
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _customUserAgent]):
(-[WKWebView _setCustomUserAgent:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-03-13 Paul Hankes Drielsma <phd@apple.com>
Add SPI to run javascript in main frame on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=130047
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _runJavaScriptInMainFrame:]):
2014-03-13 Benjamin Poulain <bpoulain@apple.com>
The viewport code should not depend on WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=130218
Reviewed by Tim Horton.
Get the viewport size from the UIProcess when creating a new WebProcess.
From there, the value is stored in WebPage and used whenever we need to update
the viewport parameters.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::viewportScreenSize):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::viewportScreenSize):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportScreenSize):
2014-03-13 Beth Dakin <bdakin@apple.com>
Do not show extended background during a pinch gesture on iOS
https://bugs.webkit.org/show_bug.cgi?id=130152
-and corresponding-
<rdar://problem/16303819>
Reviewed by Simon Fraser.
This patch refactors the backgroundColor-setting logic into its own method so that
it can be called from both _didCommitLayerTree and scrollViewDidZoom.
Only set the UIScrollView’s background color when the zoomScale is greater than or
equal to the minimumZoomScale. Also do not set it during the zoom bounce
animation. Otherwise, clear the background color by setting it to nil.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView updateScrollViewBackground]):
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView scrollViewDidZoom:]):
2014-03-13 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] block selection should avoid large blocks.
https://bugs.webkit.org/show_bug.cgi?id=130208
<rdar://problem/16251785>
Reviewed by Benjamin Poulain.
When creating a block selection, we should discard blocks that
are larger than most of the visible portion of the document.
This prevents the accidental selection the entire document, which
is fairly common when tapping over empty areas.
* Shared/InteractionInformationAtPosition.cpp:
(WebKit::InteractionInformationAtPosition::encode):
(WebKit::InteractionInformationAtPosition::decode):
* Shared/InteractionInformationAtPosition.h: Removed selectionRects that was not really needed and
added isSelectable to indicate whether the selection can start.
(WebKit::InteractionInformationAtPosition::InteractionInformationAtPosition):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView hasSelectablePositionAtPoint:]): Now uses isSelectable.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation): Takes into account the userSelect property
to figure out if the element can be selected and discards blocks that are
larger than 97% of the visible area of the document.
2014-03-13 Anders Carlsson <andersca@apple.com>
Rename WKVisitedLinkProvider to _WKVisitedLinkProvider and make it private
https://bugs.webkit.org/show_bug.cgi?id=130207
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKVisitedLinkProviderPrivate.h: Removed.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _visitedLinkProvider]):
(-[WKWebViewConfiguration _setVisitedLinkProvider:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKVisitedLinkProvider.h.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKVisitedLinkProvider.mm.
(-[_WKVisitedLinkProvider init]):
* UIProcess/API/Cocoa/_WKVisitedLinkProviderInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKVisitedLinkProviderInternal.h.
* WebKit2.xcodeproj/project.pbxproj:
2014-03-13 Anders Carlsson <andersca@apple.com>
Remove a commented out member function
https://bugs.webkit.org/show_bug.cgi?id=130204
Reviewed by Tim Horton.
* Shared/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::canSendMessage):
2014-03-13 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Crash on iPad when displaying a select element with options.
https://bugs.webkit.org/show_bug.cgi?id=130200
<rdar://problem/16316187>
Reviewed by Simon Fraser.
_singleSelectionIndex should be initialized to NSNotFound for multiSelect elements.
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController initWithView:hasGroups:]):
2014-03-13 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Close the connection when we fail to read from the socket for any unhandled error
https://bugs.webkit.org/show_bug.cgi?id=130191
Reviewed by Martin Robinson.
We currently show an error message, but we should close the
connection avoid entering an infinite loop. Also provide more
information in the error message to help when debugging the issue.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::readyReadHandler):
2014-03-13 Radu Stavila <stavila@adobe.com>
Webkit not building on XCode 5.1 due to garbage collection no longer being supported
https://bugs.webkit.org/show_bug.cgi?id=130087
Reviewed by Mark Rowe.
Disable garbage collection on macosx when not using internal SDK.
* Configurations/Base.xcconfig:
2014-03-10 Darin Adler <darin@apple.com>
Avoid copy-prone idiom "for (auto item : collection)"
https://bugs.webkit.org/show_bug.cgi?id=129990
Reviewed by Geoffrey Garen.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties): Use auto&.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): Use auto&
even though the type is a scalar. This does no harm and makes it easier
to spot uses that trigger unnecessary copying with grep.
(WebKit::RemoteLayerTreeTransaction::decode): Ditto.
(WebKit::dumpChangedLayers): Ditto.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree): Ditto.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::visitedLinkStateChanged): Ditto.
2014-03-12 Brian Burg <bburg@apple.com>
Web Inspector: Remove unused callId parameter from evaluateInWebInspector
https://bugs.webkit.org/show_bug.cgi?id=129744
Reviewed by Timothy Hatcher.
* WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
(WKBundleInspectorEvaluateScriptForTest):
* WebProcess/InjectedBundle/API/c/WKBundleInspector.h:
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::evaluateScriptForTest):
* WebProcess/WebPage/WebInspector.h:
2014-03-13 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
Fix the !ENABLE(SQL_DATABASE) build
https://bugs.webkit.org/show_bug.cgi?id=130130
Reviewed by Csaba Osztrogonác.
Add missing #ifdef guard to typedef.
* UIProcess/API/C/WKDatabaseManager.cpp:
2014-03-12 Dean Jackson <dino@apple.com>
[WebGL] WebKit1 + WebKit2 iOS clients should check load policy
https://bugs.webkit.org/show_bug.cgi?id=130162
Reviewed by Simon Fraser.
Implement webGLPolicyForURL() methods for iOS.
* Configurations/WebContent-iOS.entitlements: Add the MobileAsset asset type.
* Configurations/WebKit2.xcconfig: Add MobileAsset to iOS link list.
* WebProcess/WebPage/WebPage.cpp: Exclude iOS.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::webGLPolicyForURL): Call into WKSI.
(WebKit::WebPage::resolveWebGLPolicyForURL):
2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Disable REMOTE_INSPECTOR in earlier OS X releases
https://bugs.webkit.org/show_bug.cgi?id=130118
Reviewed by Timothy Hatcher.
* Configurations/FeatureDefines.xcconfig:
2014-03-12 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Crash when trying to select inside a video element with longpress..
https://bugs.webkit.org/show_bug.cgi?id=130095
<rdar://problem/16294534>
Reviewed by Benjamin Poulain.
We only need to set the assisted node for nodes that will receive an
input peripheral (keyboard, picker, popover, etc.).
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::elementDidFocus):
2014-03-12 Simon Fraser <simon.fraser@apple.com>
Have the scrolling tree track the viewport size, not the viewport rect
https://bugs.webkit.org/show_bug.cgi?id=130141
Reviewed by Beth Dakin.
The scrolling tree only needs to know the size of the viewport, not its
origin, since the origin is deduced from the updated scroll position.
* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
2014-03-12 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165481.
https://bugs.webkit.org/show_bug.cgi?id=130151
That didn't go well. (Requested by kling on #webkit).
Reverted changeset:
https://bugs.webkit.org/show_bug.cgi?id=130140
http://trac.webkit.org/changeset/165481
2014-03-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Runtime error when page is closed while print operation is in progress
https://bugs.webkit.org/show_bug.cgi?id=129869
Reviewed by Anders Carlsson.
Sometimes when the page is closed right after printing the web
process aborts with the runtime message "pure virtual method
called terminate called without an active exception".
This happens because the page is closed when the pages have been
printed, but print job is still ongoing sending the data to the
printer. When print job finishes, we try to notify the UI process
sending the print callback message using WebPage::send(), but the
web page object has been destroyed. The virtual method it complains
about is probably MessageSender::messageSenderDestinationID() used
by send(). Since our print operation is always asynchronous, we
need a way to notify the web page when the print operation has
actually finished to clean it up, but also notify the print
operation when the page has been closed to not try to notify the
UI process in that case.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close): Call disconnectFromPage to notify the
print operation in case there's an ongoing print job.
(WebKit::WebPage::endPrinting): Do not cleanup the print operation
here, since the print opertation might not have finished yet.
(WebKit::WebPage::didFinishPrintOperation): Send
PrintFinishedCallback message to the Ui process and cleanup the
print operation.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::disconnectFromPage): Set m_webPage
to nullptr.
(WebKit::WebPrintOperationGtk::printDone): Call
didFinishPrintOperation() is the web page hasn't been closed.
* WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
2014-03-12 Andreas Kling <akling@apple.com>
BundlePageDiagnosticLoggingClient leaks every string passing through it.
<https://webkit.org/b/130140>
<rdar://problem/15416838>
Use toAPI() instead of toCopiedAPI() so the receiving end doesn't need
to worry about adopting the WKStringRef.
Reviewed by Anders Carlsson.
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp:
(WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage):
2014-03-12 Tim Horton <timothy_horton@apple.com>
Hook up image controls for WebKit1
https://bugs.webkit.org/show_bug.cgi?id=130062
<rdar://problem/15964809>
Reviewed by Brady Eidson.
* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
2014-03-11 Alexey Proskuryakov <ap@apple.com>
REGRESSION (r165356): [Mac] Multi-part key bindings don't work
https://bugs.webkit.org/show_bug.cgi?id=130100
Reviewed by Darin Adler.
Restore the previous behavior, where we only interpreted keydowns (including those
coming through performKeyEquivalent).
In the future, we might send all events to input methods, but not to key bindings.
* UIProcess/API/mac/WKView.mm:
(-[WKView keyUp:]):
(-[WKView flagsChanged:]):
2014-03-11 Beth Dakin <bdakin@apple.com>
_pageExtendedBackgroundColor should not be exposed on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=130093
Reviewed by Simon Fraser.
Added comment indicating that _pageExtendedBackgroundColor is deprecated.
* UIProcess/API/Cocoa/WKViewPrivate.h:
_pageExtendedBackgroundColor now returns nil, but the conversation functionality
is maintained with a convenience method pageExtendedBackgroundColor.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView pageExtendedBackgroundColor]):
(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _pageExtendedBackgroundColor]):
Added comment indicating that _pageExtendedBackgroundColor is deprecated.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
Return nil.
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _pageExtendedBackgroundColor]):
2014-03-11 Jae Hyun Park <jaepark@webkit.org>
[GTK][CMake] Add HARFBUZZ_INCLUDE_DIRS to WebKit and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=130070
Reviewed by Martin Robinson.
* PlatformGTK.cmake:
2014-03-10 Dan Bernstein <mitz@apple.com>
[Cocoa] Expose WebPageProxy::close
https://bugs.webkit.org/show_bug.cgi?id=130068
Reviewed by Adele Peterson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _close]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
2014-03-10 Benjamin Poulain <bpoulain@apple.com>
[iOS][WebKit 2] Wire the unobscured rect in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=130058
Reviewed by Simon Fraser.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
2014-03-10 Simon Fraser <simon.fraser@apple.com>
Fix three leaks
https://bugs.webkit.org/show_bug.cgi?id=130048
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(decodeObject): Code is simpler and less leaky without the RetainPtr.
* UIProcess/API/Cocoa/WKNavigationAction.mm: Fix _originalURL leak
by making it a RetainPtr and implementing the getter and setter.
(-[WKNavigationAction _setOriginalURL:]):
(-[WKNavigationAction _originalURL]):
2014-03-10 Beth Dakin <bdakin@apple.com>
Set background color of WK2's UIScrollView to the pageExtendedBackgroundColor
https://bugs.webkit.org/show_bug.cgi?id=129919
Reviewed by Benjamin Poulain.
Make the pageExtendedBackgroundColor part of a RemoteLayerTreeTransaction.
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::pageExtendedBackgroundColor):
(WebKit::RemoteLayerTreeTransaction::setPageExtendedBackgroundColor):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
Set the background color of the UIScrollView based on the
pageExtendedBackgroundColor.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:WebKit::]):
For the sake of PLATFORM(MAC), continue to support the fact that this color can be
set via a message from the WebProcess or the new RemoteLayerTreeTransaction.
* UIProcess/WebPageProxy.h:
Cache the pageExtendedBackgroundColor as provided by the
RemoteLayerTreeTransaction.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
It’s not necessary to do anything here in non-Mac platforms anymore.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange):
Include the pageExtendedBackgroundColor in the RemoteLayerTreeTransaction.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
2014-03-10 Benjamin Poulain <bpoulain@apple.com>
Generalize unobscured rect to all ports
https://bugs.webkit.org/show_bug.cgi?id=130036
Reviewed by Simon Fraser.
* WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
(WebKit::ViewGestureGeometryCollector::collectGeometryForMagnificationGesture):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
2014-03-10 Dan Bernstein <mitz@apple.com>
<rdar://problem/16278716> [Cocoa] Allow setting a custom group identifier on a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=130033
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]): Create a page group with the group identifier
from the configuration, if it’s non-empty.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _groupIdentifier]): Added this accessor.
(-[WKWebViewConfiguration _setGroupIdentifier:]): Ditto.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Declared _groupIdentifier property.
2014-03-10 Enrica Casucci <enrica@apple.com>
WebKit2: Crash in WebPage::getPositionInformation.
https://bugs.webkit.org/show_bug.cgi?id=129936
<rdar://problem/16264550>
Reviewed by Eric Carlson.
Missing null check on the node renderer in one code path.
If the page body is smaller than the document, hit testing
will return HTMLHtmlElement that has no renderer.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
2014-03-10 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Clean up library linking
https://bugs.webkit.org/show_bug.cgi?id=129782
Reviewed by Philippe Normand.
* PlatformGTK.cmake: Use the new macro.
2014-03-10 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] The web process can finish while a print operation is still ongoing
https://bugs.webkit.org/show_bug.cgi?id=129871
Reviewed by Martin Robinson.
This can happen when the last page is closed while the print job
is sending data to the printer.
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Disable web
process termination when the print job is sending data to the
printer and enable it again when job finishes.
2014-03-09 Jeong Yong-uk <yong@company100.com>
Update comment in NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=129997
Reviewed by Andreas Kling.
NetworkResourceLoader::resourceHandleStopped() has been renamed to
NetworkResourceLoader::cleanup() but the comment is not updated.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
2014-03-09 Alexey Proskuryakov <ap@apple.com>
iOS build fix.
* WebProcess/WebPage/ios/WebPageIOS.mm: Include WebCore/KeyboardEvent.h.
2014-03-06 Alexey Proskuryakov <ap@apple.com>
[Mac] Don't perform a round-trip through WebProcess before interpreting key events
https://bugs.webkit.org/show_bug.cgi?id=129812
Reviewed by Darin Adler.
* Shared/NativeWebKeyboardEvent.h:
* Shared/WebEvent.h:
(WebKit::WebKeyboardEvent::handledByInputMethod):
(WebKit::WebKeyboardEvent::commands):
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):
* Shared/WebKeyboardEvent.cpp:
(WebKit::WebKeyboardEvent::WebKeyboardEvent):
(WebKit::WebKeyboardEvent::~WebKeyboardEvent):
(WebKit::WebKeyboardEvent::encode):
(WebKit::WebKeyboardEvent::decode):
* Shared/mac/NativeWebKeyboardEventMac.mm:
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
* Shared/mac/WebEventFactory.h:
* Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebKeyboardEvent):
Keyboard events now carry results of interpretation with them.
Ideally, mouse events should also have a handledByInputMethod member, because IMs
can handle events, but that can wait until we have actual bugs caused by not diabling
default processing for these.
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFirstResponder]): Updated for new NativeWebKeyboardEvent contructor
signature. We don't interpret the event in this code path.
(-[WKView doCommandBySelector:]): Added logging.
(-[WKView performKeyEquivalent:]): Reimplemented Esc and Cmd+period handling to avoid
infinite loops and re-entrancy. These two work in a unique way in AppKit.
Interpret key event before sending it down to WebProcess.
(-[WKView keyUp:]): Interpret key event before sending it down to WebProcess.
We need to tell IMs about the event, but key binding processing is moot, all commands
are executed on keydown.
(-[WKView keyDown:]): Interpret the event.
(-[WKView flagsChanged:]): Ditto.
(-[WKView _interpretKeyEvent:savingCommandsTo:WebCore::]): Added an assertion in
consumedByIM code path.
(-[WKView _executeSavedCommandBySelector:]): Added logging.
* UIProcess/PageClient.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
* UIProcess/mac/WebPageProxyMac.mm:
Removed interpretQueuedKeyEvent/interpretKeyEvent, WebProcess no longer asks UIProcess to do this.
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::handleKeyboardEvent):
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::handleKeyboardEvent):
(WebKit::WebEditorClient::handleInputMethodKeydown):
WebPage::handleEditingKeyboardEvent is now one function instead of two with a boolean
switch between two behaviors.
* WebProcess/WebPage/WebPage.cpp:(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
Removed m_keyboardEventBeingInterpreted, as we no longer send the event for interpretation.
This means that we sometimes have to pass a null event down to WebCore, but I wasn't
able to find any behavior differences from us doing so.
* WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::handleEditingKeyboardEvent):
Added a FIXME.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::executeKeypressCommandsInternal): When we don't have an event,
use current frame as a target, just like input method messages do.
(WebKit::WebPage::handleEditingKeyboardEvent): This function no longer saves commands,
it only interprets them.
Added a check for Esc, as we don't want to handle it in keydown event handler.
(WebKit::WebPage::insertText): Pass 0 instead of m_keyboardEventBeingInterpreted.
(WebKit::WebPage::insertDictatedText): Ditto.
(WebKit::WebPage::executeKeypressCommands): Ditto.
2014-03-09 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Pass FloatSize boxsize to transform animations to support device pixel sizing.
https://bugs.webkit.org/show_bug.cgi?id=129985
Reviewed by Simon Fraser.
This is in preparation to stop passing integral positioned boxes to transform animations.
No change in behavior.
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
2014-03-08 Simon Fraser <simon.fraser@apple.com>
[iOS Wk2] Can't scroll after going back to page in page cache
https://bugs.webkit.org/show_bug.cgi?id=129989
<rdar://problem/16217588>
Reviewed by Dan Bernstein.
iOS has a special FrameLoader::forceLayoutWithoutRecalculatingStyle()
function that is called instead of FrameView::forceLayout(). This was unimplemented
for the WK2 FrameLoaderClient, so no layout was forced, with the result
that the contentSize was never updated and scrolling was broken.
Fix by renaming the client function to forceLayoutOnRestoreFromPageCache()
and having it return a bool to say whether the default forceLayout()
should be done. WK1 can then continue to have its custom behavior,
and Wk2 will simply do a forceLayout().
Also remove FrameLaoderClient::forceLayout(), which was never called.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
(WebKit::WebFrameLoaderClient::forceLayoutOnRestoreFromPageCache):
2014-03-08 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Get position:fixed working slighlty better
https://bugs.webkit.org/show_bug.cgi?id=129988
Reviewed by Dan Bernstein.
iOS uses fixed layout, but does not want fixed elements laid
out relative to the frame.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUseFixedLayout):
2014-03-08 Jon Lee <jonlee@apple.com>
iOS broken after r165342
https://bugs.webkit.org/show_bug.cgi?id=129987
Reviewed by Simon Fraser.
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::platformLowMemoryHandler): Add missing stub implementation for
platformLowMemoryHandler().
2014-03-08 Eric Carlson <eric.carlson@apple.com>
[iOS] media preferences not initialized correctly in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=129983
Reviewed by Dan Bernstein.
* Shared/WebPreferencesStore.h: Initialize mediaPlaybackAllowsInline and
mediaPlaybackRequiresUserGesture correctly for iOS.
2014-03-08 Jeremy Jones <jeremyj@apple.com>
Allow media element to supply the video layer after fullscreen transition has already begun.
https://bugs.webkit.org/show_bug.cgi?id=129870
Reviewed by Eric Carlson.
WebVideoFullscreenManager and WebVideoFullscreenManagerProxy do their own remote hosting of the video layer instead of needing the video layer to have already been hosted elsewhere. This allows the removal of the coordination with WebPageProxy via a RemoteLayerTreeTransaction.
* Shared/mac/RemoteLayerTreeTransaction.h:
Remove m_videoLayerIDsPendingFullscreen and accessors.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
Don't encode m_videoLayerIDsPendingFullscreen
(WebKit::RemoteLayerTreeTransaction::decode):
Don't decode m_videoLayerIDsPendingFullscreen
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
Don't forward didCommitLayerTree to m_videoFullscreenManager.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
Remove code for synchronizing with the RenderTree.
Add a hosting layer and methods to keep video layer frame and video gravity synchronized.
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
Change IPC interface to fascilitate rehosting video layer with a instead of coordinating with the RenderTree by PlatformLayerID.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
Remove initialization for removed members.
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreenWithID):
Rehost the video layer by id and pass on the layer.
This replaces didCommitLayerTree() and willLendVideoLayerWithID().
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
Cleanup the hosting layer.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
Forward on the video layer's frame to keep the hosted layer in sync with the interface.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity):
Forward the videolayer gravity.
* WebKit2.xcodeproj/project.pbxproj:
Rename WebVideoFullscreenManager.cpp to WebVideoFullscreenManager.mm
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
Don't invovle the m_videoFullscreenManager in layer tree transactions.
* WebProcess/ios/WebVideoFullscreenManager.h:
Remove code that synchronizes with the render tree via RemoteLayerTreeTransaction.
Instead rehost the video layer directly.
Instead of hoping the WebVideoFullscreenModel has a videoLayer, supply one into which
it can add whatever it likes as needed.
* WebProcess/ios/WebVideoFullscreenManager.messages.in:
No more explicit borrowing and returning video layers.
Add functions to keep video layer bounds and gravity in sync with the UI.
* WebProcess/ios/WebVideoFullscreenManager.mm: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.cpp.
Removed code for synchronizing via RemoteLAyerTreeTransaction.
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
Remove initialization for removed memeber m_sendUnparentVideoLayerTransaction.
(WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
Creates a fullscreen layer, gives it to the WebVideoFullscreenModel to fill in,
and hosts it in a context to send to the UIProcess.
(WebKit::WebVideoFullscreenManager::exitFullscreenForNode):
remove enterFullscreen() and just directly send the IPC message.
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
Clean up the hosting context.
(WebKit::WebVideoFullscreenManager::setVideoLayerGravityEnum):
Forward on the video gravity. Type convert from unsigned to MediaPlayer::VideoGravity.
2014-03-08 Andreas Kling <akling@apple.com>
[WK2] Improve the network process low memory handler.
<https://webkit.org/b/129977>
Split the network process low memory handler into platform-specific
and shared parts. The shared part tells FastMalloc to release freed
pages back to the OS.
For Mac, added a call to purge the in-memory part of CFURLCache.
Remove the malloc_zone_pressure_relief() since that is now taken care
of by the shared MemoryPressureHandler code.
Reviewed by Darin Adler.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::platformLowMemoryHandler):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::platformLowMemoryHandler):
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
2014-03-08 Jae Hyun Park <jaepark@webkit.org>
Remove unnecessary casting in NetworkProcessMainUnix.cpp
https://bugs.webkit.org/show_bug.cgi?id=129968
Reviewed by Andreas Kling.
* NetworkProcess/unix/NetworkProcessMainUnix.cpp:
Since socket is an int, int casting is not necessary.
(WebKit::NetworkProcessMain):
2014-03-08 Aaron Golden <golden@inkling.com>
Prevent processes spawned by WebProcess from trying to insert the SecItem shim.
https://bugs.webkit.org/show_bug.cgi?id=129864
Reviewed by Anders Carlsson.
* WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
(WebKit::WebContentProcessMainDelegate::doPreInitializationWork):
2014-03-07 Tim Horton <timothy_horton@apple.com>
[WebKit2][iOS] PDF
https://bugs.webkit.org/show_bug.cgi?id=129600
<rdar://problem/15260216>
Reviewed by Anders Carlsson.
Add a single custom content provider which installs a very primitive PDF view
in place of the WKContentView if a PDF is loaded in the main frame.
* Configurations/WebKit2.xcconfig:
Link against CorePDF, for UIPDFPageView.
* UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry init]):
Initialize the registry, using WKPDFView for all PDF MIME types.
* WebKit2.xcodeproj/project.pbxproj:
* UIProcess/ios/WKPDFView.h: Added.
* UIProcess/ios/WKPDFView.mm: Added.
Add a very simple PDF view based on UIPDFPageView. Additional functionality
can come in the future; right now, we just create one view for each page, and
depend on CATiledLayer to only paint the pages that are being displayed.
2014-03-07 Andreas Kling <akling@apple.com>
ArgumentEncoder and ArgumentDecoder should be fastmalloced.
<https://webkit.org/b/129960>
Reviewed by Ryosuke Niwa.
* Platform/IPC/ArgumentDecoder.h:
* Platform/IPC/ArgumentEncoder.h:
2014-03-07 Martin Robinson <mrobinson@igalia.com>
Fix the GTK+ build after the recent iOS merge.
* UIProcess/API/gtk/PageClientImpl.cpp: Make some methods available to non-Cocoa ports and fix some signatures.
* UIProcess/WebPageProxy.h: Ditto.
2014-03-07 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed. Fix build on the EFL port after r165303
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::didCommitLoadForMainFrame): Added new parameters.
* UIProcess/CoordinatedGraphics/WebView.h: Ditto.
* UIProcess/WebPageProxy.h:
* UIProcess/efl/WebViewEfl.cpp: Added dummy didFinishLoadingDataForCustomContentProvider()
(WebKit::WebViewEfl::exitFullScreen):
(WebKit::WebViewEfl::didFinishLoadingDataForCustomContentProvider):
* UIProcess/efl/WebViewEfl.h: Ditto.
2014-03-07 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Keyboard accessory comes up when I click a link.
https://bugs.webkit.org/show_bug.cgi?id=129949
<rdar://problem/16265305>
Reviewed by Simon Fraser.
We need to create the accessory view only when needed.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView requiresAccessoryView]):
(-[WKContentView inputAccessoryView]):
2014-03-07 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Long-press on a link shows just "Copy".
https://bugs.webkit.org/show_bug.cgi?id=129938
<rdar://problem/16266054>
Reviewed by Benjamin Poulain.
When adding a FIXME comment, I accidentally removed the ! on
the if (!element) condition.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
2014-03-07 Tim Horton <timothy_horton@apple.com>
[WebKit2][iOS] Main-frame custom content providers
https://bugs.webkit.org/show_bug.cgi?id=129809
Reviewed by Dan Bernstein.
Re-introduce custom content providers to WebKit2 (removed in r152841), but
for iOS this time.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
Send the initial MIME types that have custom content providers to the WebProcess.
(-[WKWebView dealloc]):
Unregister our page from the content provider registry.
(-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
Install/uninstall the custom content provider. Create a view, if needed,
based on the class that the registry has associated with the given MIME type.
We unparent the WKContentView while the custom content provider is active,
and re-use the existing WKScrollView to contain the custom content provider.
(-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:dataReference:]):
Forward loaded data on to the custom content provider for display.
(-[WKWebView _didCommitLayerTree:WebKit::]):
Assert that we aren't getting layer tree commits while using a custom content provider.
(-[WKWebView viewForZoomingInScrollView:]):
If we're using a custom content provider, its view should be used for zooming
instead of the (unparented) web content view.
(-[WKWebView hasContentView]):
(-[WKWebView scrollViewWillBeginZooming:withView:]):
(-[WKWebView scrollViewWillBeginDragging:]):
(-[WKWebView _didFinishScrolling]):
(-[WKWebView _updateVisibleContentRects]):
If we do not have a parented WKContentView because we are using a custom
content provider, we should not forward scroll view related changes to it.
(-[WKWebView _frameOrBoundsChanged]):
Update the minimum size of the custom content provider if the web view size changes.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _contentProviderRegistry]):
(-[WKWebViewConfiguration _setContentProviderRegistry:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h: Added.
Add an internal WKWebViewConfiguration property, the WKWebViewContentProviderRegistry.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/Cocoa/WKWebViewContentProvider.h: Added.
A minimal protocol for informing custom content providers of changes to
the size of the view, the represented data, and the owning scroll view.
* UIProcess/Cocoa/WKWebViewContentProviderRegistry.h: Added.
* UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Added.
(-[WKWebViewContentProviderRegistry addPage:]):
(-[WKWebViewContentProviderRegistry removePage:]):
(-[WKWebViewContentProviderRegistry registerProvider:forMIMEType:]):
(-[WKWebViewContentProviderRegistry providerForMIMEType:]):
(-[WKWebViewContentProviderRegistry mimeTypesWithContentProviders]):
New class, keeps track of a mapping from MIME types to UIViews that
conform to the WKWebViewContentProvider protocol.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::didCommitLoadForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/PageClient.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::PageClientImpl):
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
(WebKit::PageClientImpl::didFinishLoadingDataForCustomContentProvider):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
(WebKit::PageClientImpl::didFinishLoadingDataForCustomContentProvider):
Add parameters to didCommitLoadForMainFrame, indicating if we should use
a custom content provider to display the main frame, and what MIME type
was loaded in said frame, and add didFinishLoadingDataForCustomContentProvider.
On iOS, forward these to the WKWebView.
Also, give PageClientImplIOS a reference to the WKWebView.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame _hasCustomContentProvider]):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
Expose whether or not a given frame has a custom content provider to the plug-in.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::WebFrameLoaderClient):
(WebKit::WebFrameLoaderClient::hasHTMLView):
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
(WebKit::WebFrameLoaderClient::committedLoad):
(WebKit::WebFrameLoaderClient::finishedLoading):
(WebKit::WebFrameLoaderClient::transitionToCommittedFromCachedFrame):
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
(WebKit::WebFrameLoaderClient::canCachePage):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
(WebKit::WebFrameLoaderClient::frameHasCustomContentProvider):
Restore WebFrameLoaderClient custom representation code, which ensures
that data is routed correctly (to the UI process, and not to WebCore) and
that we don't try to use the page cache for frames with content providers.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mainFrameHasCustomContentProvider):
(WebKit::WebPage::addMIMETypeWithCustomContentProvider):
(WebKit::WebPage::shouldUseCustomContentProviderForResponse):
(WebKit::WebPage::canShowMIMEType):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Keep a list of MIME types which can be displayed via custom content providers
in WebPage, which will be pushed down from the registry as new providers
are added. Plug-ins still take precendence over custom content providers.
2014-03-07 Anders Carlsson <andersca@apple.com>
MigrateHeaders.make should remove C SPI includes from WebKit2 headers
https://bugs.webkit.org/show_bug.cgi?id=129937
<rdar://problem/15920020>
Reviewed by Tim Horton.
* WebKit2.xcodeproj/project.pbxproj:
Make WKPreferences.h and all headers it includes public. Update the post processing of WKBase.h
to account for WKBase.h now being a public header again.
2014-03-07 Alexey Proskuryakov <ap@apple.com>
REGRESSION (r164847): Pressing the command key while hovering an element causes it to un-hover
https://bugs.webkit.org/show_bug.cgi?id=129872
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKViewPrivate.h: Changes in performDictionaryLookupAtCurrentMouseLocation
were also not correct, because the current event could be a keyboard one (Cmd+Ctrl+D).
But this SPI is unused, and can be simply removed.
* UIProcess/API/mac/WKView.mm: (-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]):
locationInWindow is undefined for keyboard events, so we have to use current location.
Thankfully, there is a method that returns the location in appropriate coordinate
space, unlike +[NSEvent mouseLocation] that we used before.
2014-03-07 Andy Estes <aestes@apple.com>
[iOS] Install WebKit2 XPC services to the correct place during iOS Simulator builds
https://bugs.webkit.org/show_bug.cgi?id=129914
Reviewed by Dan Bernstein.
We weren't specifying INSTALL_PATH for iOS Simulator builds in
BaseXPCService.xcconfig, and r164576 changed INSTALL_PATH to
INSTALL_PATH_ACTUAL. This caused XPC services to start being installed
to the root of the iOS Simulator SDK. Fix this by setting
INSTALL_PATH_ACTUAL for iphonesimulator.
* Configurations/BaseXPCService.xcconfig:
2014-03-07 Andreas Kling <akling@apple.com>
[Mac] Notify system malloc of fake memory pressure.
<https://webkit.org/b/129908>
Reviewed by Anders Carlsson.
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
Listen for the fake memory pressure notification and respond by
just forwarding to system malloc. We don't do the full WebCore
memory pressure handling here, since that will cause stuff that
the network process doesn't need to get instantiated.
2014-03-07 Dean Jackson <dino@apple.com>
Attempt to fix the iOS build.
* Configurations/WebKit2.xcconfig: Add -framework OpenGLES to linking.
2014-03-07 Simon Fraser <simon.fraser@apple.com>
[iOS] Add an updateID to visibleContentRect updates which is passed back in layer transactions, so we know whether transactions are stale
https://bugs.webkit.org/show_bug.cgi?id=129897
Reviewed by Benjamin Poulain.
In WebKit2 on iOS we need to know when layer updates from the web process
are stale with respect to visible rect updates from the UI process. Do so
by adding an updateID to VisibleContentRectUpdateInfo, and storing it
on each side, returning it in RemoteLayerTreeTransaction.
Did some re-ordering of members and encoding order in RemoteLayerTreeTransaction
to group like data members together.
* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::updateID):
(WebKit::operator==):
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::setLastVisibleContentRectUpdateID):
(WebKit::RemoteLayerTreeTransaction::lastVisibleContentRectUpdateID):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::nextVisibleContentRectUpdateID):
(WebKit::WebPageProxy::lastVisibleContentRectUpdateID):
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::willCommitLayerTree):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
2014-03-07 Roger Fong <roger_fong@apple.com>
Replace setSystemWebGLLoadPolicy API with methods to query for WebGL blocking policy.
https://bugs.webkit.org/show_bug.cgi?id=129873.
Reviewed by Dean Jackson.
Remove setSystemWebGLLoadPolicy API.
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::resolveWebGLLoadPolicy):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/API/C/WKPageLoaderClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resolveWebGLPolicyForURL):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::webGLPolicyForURL):
Add API to directly query the WebGL blocking policies from WKSI.
* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextShouldBlockWebGL):
(WKContextShouldSuggestBlockWebGL):
2014-03-07 Eric Carlson <eric.carlson@apple.com>
Initialize new WKSI functions for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=129889
Reviewed by Simon Fraser.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2014-03-07 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use final and override in WebPrintOperationGtk
https://bugs.webkit.org/show_bug.cgi?id=129868
Reviewed by Sergio Villar Senin.
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
2014-03-06 Alexey Proskuryakov <ap@apple.com>
[Mac] Allow com.apple.GSSCred in WebKit sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=129777
<rdar://problem/16050832>
Reviewed by Anders Carlsson.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
* WebProcess/com.apple.WebProcess.sb.in:
2014-03-06 Filip Pizlo <fpizlo@apple.com>
If the FTL is build-time enabled then it should be run-time enabled.
Rubber stamped by Geoffrey Garen.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/mac/WebContextMac.mm:
(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebContext::platformInitializeWebProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
2014-03-06 Hyowon Kim <hw1008.kim@samsung.com>
[EFL] Move EvasGL classes from WebKit to WebCore namespace.
https://bugs.webkit.org/show_bug.cgi?id=129797
Reviewed by Gyuyoung Kim.
* UIProcess/API/efl/EwkView.h: namespace changes for EvasGLContext/Surface.
2014-03-06 Simon Fraser <simon.fraser@apple.com>
Remove one more setCustomFixedPositionRect() that I missed.
* UIProcess/DrawingAreaProxy.h:
2014-03-06 Simon Fraser <simon.fraser@apple.com>
Send the fixed position rect to the WebProcess along with the other rects
https://bugs.webkit.org/show_bug.cgi?id=129856
Reviewed by Benjamin Poulain.
Remove the functions that pass the custom fixed position rect through
the DrawingArea, and replace them by adding this rect to the
VisibleContentRectUpdateInfo, along with the "is stable" flag. We
then set the custom fixed position rect in the web process for
stable updates.
* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::customFixedPositionRect):
(WebKit::VisibleContentRectUpdateInfo::inStableState):
(WebKit::operator==):
* UIProcess/DrawingAreaProxy.cpp:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2014-03-06 Simon Fraser <simon.fraser@apple.com>
Remove empty class extension in WKContentViewInteraction
https://bugs.webkit.org/show_bug.cgi?id=129849
Reviewed by Enrica Casucci.
This empty class extension is cruft left over from refactoring.
It can be removed.
* UIProcess/ios/WKContentViewInteraction.mm:
2014-03-06 Simon Fraser <simon.fraser@apple.com>
[iOS] didUpdateVisibleRect: should use fabs, not abs
https://bugs.webkit.org/show_bug.cgi?id=129843
Reviewed by Benjamin Poulain.
When zooming we sent messages to the web process with an unchanging
zoom scale because of use of abs() rather than fabs().
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
2014-03-06 Anders Carlsson <andersca@apple.com>
Remove WebKit1 header includes from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=129824
Reviewed by Dan Bernstein.
* UIProcess/mac/WKFullScreenWindowController.mm:
(makeResponderFirstResponderIfDescendantOfView):
Add a new function instead of calling an NSWindow category method that's defined in WebKit1.
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
Call makeResponderFirstResponderIfDescendantOfView.
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
Remove unused WebKit1 header import.
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::documentFragmentFromAttributedString):
Change a category to be on NSObject instead of WebResource.
2014-03-06 Jon Lee <jonlee@apple.com>
iOS build fix.
Reviewed by Simon Fraser.
* UIProcess/ios/SmartMagnificationController.mm:
2014-03-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Expose the console object in JSContexts to interact with Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=127944
Reviewed by Geoffrey Garen.
* WebProcess/WebCoreSupport/WebChromeClient.h:
Update namespaces.
2014-03-06 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Close the page when the view is disposed instead of when finalized
https://bugs.webkit.org/show_bug.cgi?id=129783
Reviewed by Sergio Villar Senin.
When a GtkWidget is destroyed, the GObject is disposed, but not
finalized if it has additional references. When the destroyed
widget is leaked by the application, we leak the page proxy and
what is more important the web process in multi-process mode.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDispose): Close the WebPageProxy.
2014-03-05 Chris Fleizach <cfleizach@apple.com>
AX: Support IOS Accessibility in WK2
https://bugs.webkit.org/show_bug.cgi?id=129527
Build fix.
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
2014-03-05 Chris Fleizach <cfleizach@apple.com>
AX: Support IOS Accessibility in WK2
https://bugs.webkit.org/show_bug.cgi?id=129527
Address review comments from Simon noted in bug.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _accessibilityRegisterUIProcessTokens]):
* WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
(-[WKAccessibilityWebPageObject init]):
(-[WKAccessibilityWebPageObject dealloc]):
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h:
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
(-[WKAccessibilityWebPageObject accessibilitySetValue:forAttribute:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
2014-03-05 Dean Jackson <dino@apple.com>
[WebGL] Use WKSI to see what the system policy for WebGL is
https://bugs.webkit.org/show_bug.cgi?id=129722
<rdar://problem/15790542>
Reviewed by Tim Horton.
Use the WebKitSystemInterface methods WKShouldBlockWebGL
and WKShouldSuggestBlockingWebGL to query what the host
system thinks about the hardware. Tell the client about
the result in a new WebPage method setSystemWebGLPolicy.
* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::setSystemWebGLLoadPolicy): New empty definition.
* UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI): Convert a WebGLLoadPolicy into a WKWebGLLoadPolicy.
* UIProcess/API/C/WKPage.cpp: Call setSystemWebGLLoadPolicy.
(WKPageSetPageLoaderClient):
* UIProcess/API/C/WKPageLoaderClient.h: New typedef and entry in client structure.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setSystemWebGLPolicy):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in: Add SetSystemWebGLPolicy.
* Source/WebKit2/Configurations/WebKit2.xcconfig: We have to link against OpenGL now, because WKSI
uses it for hardware detection.
* WebProcess/WebPage/WebPage.cpp: Remove the implementation here, but leave
empty methods for non-Apple platforms.
(WebKit::WebPage::WebPage):
(WebKit::WebPage::webGLPolicyForURL):
(WebKit::WebPage::resolveWebGLPolicyForURL):
* WebProcess/WebPage/WebPage.h: Add m_systemWebGLPolicy.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::webGLPolicyForURL): Moved in from WebPage, but now they call
into WKSI and send the result to the client if necessary.
(WebKit::WebPage::resolveWebGLPolicyForURL):
2014-03-05 Simon Fraser <simon.fraser@apple.com>
Fix a stupid error in r165118 that caused userVisibleString()
to call itself recursively.
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::userVisibleString):
2014-03-05 Benjamin Poulain <bpoulain@apple.com>
[iOS] Rename the various VisibleExtent variations to exposedContentRect
https://bugs.webkit.org/show_bug.cgi?id=129728
Reviewed by Simon Fraser.
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):
2014-03-05 Dean Jackson <dino@apple.com>
Unreviewed. Fix the Apple-internal builds.
* Configurations/WebKit2.xcconfig: Add -framework OpenGL.
2014-03-05 Simon Fraser <simon.fraser@apple.com>
ObjC exception when dropping files into a WKView: drag and drop uses code from WebKit.framework
https://bugs.webkit.org/show_bug.cgi?id=129752
Reviewed by Enrica Casucci.
Get WebDragClientMac off of all WebKit headers, and WebEditorClientMac off
all but one by using C functions from WebCoreNSURLExtras.h rather than
the NSURL category.
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::declareAndWriteDragImage):
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::userVisibleString):
(WebKit::WebEditorClient::canonicalizeURL):
(WebKit::WebEditorClient::canonicalizeURLString):
2014-03-05 Martin Hock <mhock@apple.com>
Add support for sessions to MemoryCache.
https://bugs.webkit.org/show_bug.cgi?id=127794
Reviewed by Sam Weinig.
* NetworkProcess/NetworkResourceLoader.h: Add sessionID() method.
(WebKit::NetworkResourceLoader::sessionID):
* NetworkProcess/mac/DiskCacheMonitor.h: Add sessionID member.
* NetworkProcess/mac/DiskCacheMonitor.mm:
(WebKit::DiskCacheMonitor::DiskCacheMonitor): Send sessionID to NetworkProcessConnection::DidCacheResource.
* WebProcess/Network/NetworkProcessConnection.cpp: Add sessionID parameter to didCacheResource and pass to MemoryCache.
(WebKit::NetworkProcessConnection::didCacheResource):
* WebProcess/Network/NetworkProcessConnection.h: Ditto.
* WebProcess/Network/NetworkProcessConnection.messages.in: Ditto.
2014-03-05 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] support multi-select and select with groups for iPhone.
https://bugs.webkit.org/show_bug.cgi?id=129344
<rdar://problem/16206928>
Reviewed by Simon Fraser.
This is the remaining work on select element support on iOS.
This adds multi-select and select with group support with UI
for iPhone that uses UIPickerView.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView resignFirstResponder]):
(-[WKContentView inputAccessoryView]): Removed incorrect early return.
(-[WKContentView _stopAssistingNode]):
* UIProcess/ios/forms/WKFormSelectControl.h:
* UIProcess/ios/forms/WKFormSelectControl.mm:
(adjustedFontSize): Moved here to make it available to both picker and
popover based implementations.
(-[WKFormSelectControl initWithView:]):
* UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKOptionPickerCell _isSelectable]):
(-[WKOptionPickerCell initCommon]):
(-[WKOptionPickerCell initWithOptionItem:]):
(-[WKOptionGroupPickerCell initWithOptionItem:]):
(-[WKOptionGroupPickerCell labelWidthForBounds:]):
(-[WKOptionGroupPickerCell layoutSubviews]):
(-[WKMultipleSelectPicker initWithView:]):
(-[WKMultipleSelectPicker dealloc]):
(-[WKMultipleSelectPicker controlView]):
(-[WKMultipleSelectPicker controlBeginEditing]):
(-[WKMultipleSelectPicker controlEndEditing]):
(-[WKMultipleSelectPicker layoutSubviews]):
(-[WKMultipleSelectPicker pickerView:viewForRow:forComponent:reusingView:]):
(-[WKMultipleSelectPicker numberOfComponentsInPickerView:]):
(-[WKMultipleSelectPicker pickerView:numberOfRowsInComponent:]):
(-[WKMultipleSelectPicker findItemIndexAt:]):
(-[WKMultipleSelectPicker pickerView:row:column:checked:]):
(-[WKSelectSinglePicker initWithView:]):
(-[WKSelectSinglePicker controlEndEditing]):
* UIProcess/ios/forms/WKFormSelectPopover.mm:
2014-03-03 Martin Robinson <mrobinson@igalia.com>
[GTK][CMake] Generate documentation for the DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=126211
Reviewed by Carlos Garcia Campos.
* PlatformGTK.cmake: The list of headers for GIR generation has a better name now.
2014-03-04 Benjamin Poulain <bpoulain@apple.com>
Fix the build after r165095
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):
2014-03-04 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Account for the keyboard when computing the unobscuredRect
https://bugs.webkit.org/show_bug.cgi?id=129660
Reviewed by Enrica Casucci.
Adjust the unobscuredRect when a docked keyboard is on screen.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateVisibleContentRectsWithStableState:]):
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):
2014-03-04 Andy Estes <aestes@apple.com>
[iOS][WebKit2] Exclude plug-in sandbox profiles from the build
https://bugs.webkit.org/show_bug.cgi?id=129719
Reviewed by Simon Fraser.
* Configurations/WebKit2.xcconfig:
2014-03-04 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] WKScrollView should be able to cancel touches in content view
https://bugs.webkit.org/show_bug.cgi?id=129711
Reviewed by Simon Fraser.
* UIProcess/ios/WKScrollView.mm:
We should not override UIWebScrollView behavior regarding touch cancellation otherwise we force
other gesture recognizers to fail if delayed touches have been dispatched.
2014-03-04 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Consider the entire view state on update to find if a change is stable or not
https://bugs.webkit.org/show_bug.cgi?id=129721
Reviewed by Simon Fraser.
Changes in scroll, zoom and obscuredRect can happen simultaneously. To compute if the current state
is stable or not, we should consider the complete picture from all the type of updates.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _endInteractiveObscuredInsetsChange]):
2014-03-04 Jeremy Jones <jeremyj@apple.com>
WebVideoFullscreen, should make the hand off of the video layer explicit.
https://bugs.webkit.org/show_bug.cgi?id=128844
Reviewed by Simon Fraser.
This change introduces a more explicit hand-off of the video layer and fullscreen transition.
This describes the interactions between WebVideoFullscreenInterface and WebVideoFullscreenModel
WebVideoFullscreenModel <-> WebVideoFullscreenInterface
enterFullScreen(*) ->
<- borrowVideoLayer
willLendVideoLayer ->
didLendVideoLayer ->
<- didEnterFullscreen
...
<- requestExitFullscreen
exitFullscreen ->
<- returnVideoLayer
<- didExitFullscreen
(*) enterFullScreen actually comes from WebVideoFullscreenControllerAVKit.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
Implement WebVideoFullscreenChangeObserver.
Add support for explicit video layer hand-off.
Add m_videoView to retain the videoLayer's UIView.
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
WillLendVideoLayerWithID replaces SetVideoLayerID
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
Adopt new methods for explicit video layer hand-off.
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
Observe fullscreen changes.
(WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
Pending fullscreen transition now does didLendVideoLayer instead of calling enter fullscreen.
It also removes the videoView from it's super view now that it is safe to do so.
(WebKit::WebVideoFullscreenManagerProxy::willLendVideoLayerWithID):
This replaces setVideoLayerID. It retains the UIView for the layer to keep it alive before it is unparented.
(WebKit::WebVideoFullscreenManagerProxy::requestExitFullscreen):
Adopt more explicit fullscreen transition.
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
Adopt more explicit fullscreen transition.
(WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen):
Adopt more explicit fullscreen transition.
(WebKit::WebVideoFullscreenManagerProxy::borrowVideoLayer):
Adopt more explicit video layer hand-off.
(WebKit::WebVideoFullscreenManagerProxy::returnVideoLayer):
Adopt more explicit video layer hand-off.
* WebProcess/ios/WebVideoFullscreenManager.cpp:
Manage state of fullscreen transition more competently. Wait till an animation is complete to begin the next one.
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
Init three new state members.
(WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
Update animation state. Don't procede if animation is in progress.
(WebKit::WebVideoFullscreenManager::exitFullscreenForNode):
Update animation state. Don't procede if animation is in progress.
(WebKit::WebVideoFullscreenManager::willLendVideoLayer):
Adopt more explicit video layer hand-off.
This replaces SetVideoLayer.
(WebKit::WebVideoFullscreenManager::didLendVideoLayer):
This is a no-op as this will be sent through a RemoteLayerTreeTransaction.
(WebKit::WebVideoFullscreenManager::didEnterFullscreen):
Adopt more explicit fullscreen transition.
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
Adopt more explicit fullscreen transition.
* WebProcess/ios/WebVideoFullscreenManager.h:
Adopt more explicit fullscreen transition.
* WebProcess/ios/WebVideoFullscreenManager.messages.in:
Adopt more explicit fullscreen/video layer transition.
2014-03-04 Simon Fraser <simon.fraser@apple.com>
Get position:fixed working slightly better on iOS WK2
https://bugs.webkit.org/show_bug.cgi?id=129714
Reviewed by Benjamin Poulain.
Start telling the RemoteScrollingCoordinatorProxy about scroll position changes
again, so it can update fixed and sticky layers.
Send the scroll position as a FloatPoint, rather than an IntPoint.
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChangedViaDelegatedScrolling):
(WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged):
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
Tell the RemoteScrollingCoordinatorProxy about the scroll update.
Only update the customFixedPositionRect if we've finished scrolling or zooming.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateVisibleContentRects): Return a bool indicating
whether the visible rects changed.
2014-03-04 Conrad Shultz <conrad_shultz@apple.com>
WKPage's pageExtendedBackgroundColor API exposed through WKView/WKWebView should support NSColor
https://bugs.webkit.org/show_bug.cgi?id=129704
Reviewed by Beth Dakin.
Add NSColor-returning methods to complement the existing UIColor-returning methods.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare _pageExtendedBackgroundColor for non-TARGET_OS_IPHONE.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _pageExtendedBackgroundColor]):
Return an NSColor created from the pageExtendedBackgroundColor.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
Declare _pageExtendedBackgroundColor for non-TARGET_OS_IPHONE.
* UIProcess/API/mac/WKView.mm:
(-[WKView _pageExtendedBackgroundColor]):
Return an NSColor created from the pageExtendedBackgroundColor.
2014-03-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Give WebProcess private RWI entitlement
https://bugs.webkit.org/show_bug.cgi?id=129710
Reviewed by Timothy Hatcher.
* Configurations/WebContent-iOS.entitlements:
Add entitlements to "WebProcess" when code signing.
* Configurations/WebContentProcess.xcconfig:
Add the private RWI entitlement.
2014-03-04 Enrica Casucci <enrica@apple.com>
[iOS WebKit2]: Next/Prev button in the accessory bar do not work.
https://bugs.webkit.org/show_bug.cgi?id=129690
<rdar://problem/16073569>
Reviewed by Simon Fraser.
Adding support for Next and Previous buttons in the accessory bar.
When the request is processed by the WebProcess, we identify the next
focusable node that needs to be assisted and we call focus() on the element
letting the focus changing machinery take care of updating the assisted node.
This change also add support for the Clear button, when appropriate and hooks up
the call to the WebProcess.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView accessoryTab:]):
(-[WKContentView accessoryClear]):
(-[WKContentView _updateAccessory]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::focusNextAssistedNode):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::nextFocusableElement):
(WebKit::hasFocusableElement):
(WebKit::WebPage::focusNextAssistedNode):
(WebKit::WebPage::getAssistedNodeInformation):
2014-03-04 Simon Fraser <simon.fraser@apple.com>
Allow iOS DumpRenderTree crashes to show application-specific information
https://bugs.webkit.org/show_bug.cgi?id=129705
Reviewed by David Kilzer.
Make the WKSI function SetCrashReportApplicationSpecificInformation available
in iOS simulator builds.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2014-03-04 Mark Hahnenberg <mhahnenberg@apple.com>
Merge API shims and JSLock
https://bugs.webkit.org/show_bug.cgi?id=129650
Reviewed by Mark Lam.
JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason
to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::~UniqueIDBDatabaseBackingStoreSQLite):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
2014-03-03 Enrica Casucci <enrica@apple.com>
[WK2] Selection remains after reload.
https://bugs.webkit.org/show_bug.cgi?id=129648
<rdar://problem/16207547>
Reviewed by Sam Weinig.
We normally clear the selection when resigninig first responder but
that doesn't get called when reloading the page or when navigating with
back/forward buttons. The correct place to do this is when we get
_didCommitLoadForMainFrame where we already stop assisting the node.
The method we call into webselectionassistant is resignedFirstResponder
which takes care of clearing the selection and removing the selection view.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _stopAssistingNode]):
2014-03-04 Hyowon Kim <hw1008.kim@samsung.com>
Move EvasGLContext and EvasGLSurface files into the efl common directory.
https://bugs.webkit.org/show_bug.cgi?id=129603
Reviewed by Gyuyoung Kim.
* PlatformEfl.cmake: Update for removed files.
2014-03-03 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] WebPage::updateVisibleContentRects can set the position directly instead of using programmatic scrolling
https://bugs.webkit.org/show_bug.cgi?id=129649
Reviewed by Sam Weinig.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
Update my workaround from r165003. We should not use programmatic scrolling when the scroll position is changed
from the UI.
2014-03-03 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Update UIScrollView's contentSize when a new layer tree is committed
https://bugs.webkit.org/show_bug.cgi?id=129641
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:WebKit::]):
Previously, we relied on [UIScrollView setZoomScale:] to reset the contentSize for us.
In the cases where we would not go through [UIScrollView setZoomScale:], the UIScrollView's contentSize
did not match the actual WKContentView's area on screen.
2014-03-03 Jeremy Jones <jeremyj@apple.com>
Forward application suspend resume notifications to the web process.
https://bugs.webkit.org/show_bug.cgi?id=129356
Reviewed by Eric Carlson.
Repost UIApplicationWillEnterForegroundNotification,
UIApplicationDidBecomeActiveNotification and
UIApplicationWillResignActiveNotification from UIProcess to WebProcess.
As WebUIApplicationWillEnterForegroundNotification,
WebUIApplicationDidBecomeActiveNotification, and
WebUIApplicationWillResignActiveNotification
* UIProcess/WebPageProxy.h:
Add applicationWillEnterForeground()
applicationWillResignActive()
applicationDidBecomeActive()
* UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::]):
Observe notifications.
(-[WKContentView dealloc]):
Stop observing notifications.
(-[WKContentView _applicationWillResignActive:]):
Notify WebPageProxy of the event.
(-[WKContentView _applicationWillEnterForeground:]):
Notify WebPageProxy of the event.
(-[WKContentView _applicationDidBecomeActive:]):
Notify WebPageProxy of the event.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationWillEnterForeground):
Send corresponding Message to WebPage.
(WebKit::WebPageProxy::applicationWillResignActive):
Send corresponding Message to WebPage.
(WebKit::WebPageProxy::applicationDidBecomeActive):
Send corresponding Message to WebPage.
* WebProcess/WebPage/WebPage.h:
Add applicationWillEnterForeground()
applicationWillResignActive()
applicationDidBecomeActive()
* WebProcess/WebPage/WebPage.messages.in:
Add applicationWillEnterForeground()
applicationWillResignActive()
applicationDidBecomeActive()
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationWillResignActive):
Post corresponding NSNotification.
(WebKit::WebPage::applicationWillEnterForeground):
Post corresponding NSNotification.
(WebKit::WebPage::applicationDidBecomeActive):
Post corresponding NSNotification.
2014-03-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165013.
http://trac.webkit.org/changeset/165013
https://bugs.webkit.org/show_bug.cgi?id=129646
New code is not thread safe, asserting on a worker test
(Requested by ap on #webkit).
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/mac/DiskCacheMonitor.h:
* NetworkProcess/mac/DiskCacheMonitor.mm:
(WebKit::DiskCacheMonitor::DiskCacheMonitor):
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didCacheResource):
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Network/NetworkProcessConnection.messages.in:
2014-03-03 Enrica Casucci <enrica@apple.com>
[iOS WebKit2]: Text fields don't zoom in when focused
https://bugs.webkit.org/show_bug.cgi?id=129632
<rdar://problem/16185230>
Reviewed by Benjamin Poulain.
When focusing the node we need to zoom and center it and possibly
scroll to make it visible.
On iPad we only scroll, without zooming.
* Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h:
(WebKit::AssistedNodeInformation::AssistedNodeInformation):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _scrollToRect:withOrigin:minimumScrollDistance:]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView _startAssistingNode:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
2014-03-03 Sam Weinig <sam@webkit.org>
Fix ASSERT and leaks introduced in recent "Support IOS Accessibility in WK2" patch
Reviewed by Simon Fraser.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _accessibilityRegisterUIProcessTokens]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformInitializeAccessibility):
2014-03-03 Simon Fraser <simon.fraser@apple.com>
Composited masks not working on iOS after r164890
https://bugs.webkit.org/show_bug.cgi?id=129630
Reviewed by Jer Noble.
Fix typo in UIView-related masks code; set the mask layer
on the view, not the maskView.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
2014-02-28 Chris Fleizach <cfleizach@apple.com>
AX: Support IOS Accessibility in WK2
https://bugs.webkit.org/show_bug.cgi?id=129527
Reviewed by Sam Weinig.
Implement enough AX hooks so that accessibility can work in WebKit2.
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.cpp:
(IPC::Connection::identifier):
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::accessibilityWebProcessTokenReceived):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _updateForScreen:]):
(-[WKContentView _setAccessibilityWebProcessToken:]):
(-[WKContentView _accessibilityRegisterUIProcessTokens]):
(-[WKContentView _didRelaunchProcess]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::registerWebProcessAccessibilityToken):
(WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
* WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.h: Added.
* WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm: Added.
(-[WKAccessibilityWebPageObject init]):
(-[WKAccessibilityWebPageObject _accessibilityCategoryInstalled:]):
(-[WKAccessibilityWebPageObject pageScale]):
(-[WKAccessibilityWebPageObject dealloc]):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::platformInitializeAccessibility):
(WebKit::WebPage::accessibilityObjectForMainFramePlugin):
(WebKit::WebPage::registerUIProcessAccessibilityTokens):
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h: Copied from Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h.
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: Copied from Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm.
(-[WKAccessibilityWebPageObjectBase accessibilityFocusedUIElement]):
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h: Added.
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: Added.
(-[WKAccessibilityWebPageObject accessibilityIsIgnored]):
(-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
(-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]):
(-[WKAccessibilityWebPageObject accessibilityIsAttributeSettable:]):
(-[WKAccessibilityWebPageObject accessibilitySetValue:forAttribute:]):
(-[WKAccessibilityWebPageObject convertScreenPointToRootView:]):
(-[WKAccessibilityWebPageObject accessibilityActionNames]):
(-[WKAccessibilityWebPageObject accessibilityChildren]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
(-[WKAccessibilityWebPageObject accessibilityShouldUseUniqueId]):
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
* WebProcess/WebPage/mac/WebPageMac.mm:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
2014-03-03 Martin Hock <mhock@apple.com>
Add support for sessions to MemoryCache.
https://bugs.webkit.org/show_bug.cgi?id=127794
Reviewed by Sam Weinig.
* NetworkProcess/NetworkResourceLoader.h: Add sessionID() method.
(WebKit::NetworkResourceLoader::sessionID):
* NetworkProcess/mac/DiskCacheMonitor.h: Add sessionID member.
* NetworkProcess/mac/DiskCacheMonitor.mm:
(WebKit::DiskCacheMonitor::DiskCacheMonitor): Send sessionID to NetworkProcessConnection::DidCacheResource.
* WebProcess/Network/NetworkProcessConnection.cpp: Add sessionID parameter to didCacheResource and pass to MemoryCache.
(WebKit::NetworkProcessConnection::didCacheResource):
* WebProcess/Network/NetworkProcessConnection.h: Ditto.
* WebProcess/Network/NetworkProcessConnection.messages.in: Ditto.
2014-03-03 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Regression: ScrollView's scroll offset is never set after r164702
https://bugs.webkit.org/show_bug.cgi?id=129620
Reviewed by Simon Fraser.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
2014-03-03 Simon Fraser <simon.fraser@apple.com>
Crash when going into video fullscreen on iOS
https://bugs.webkit.org/show_bug.cgi?id=129613
Reviewed by Dean Jackson.
We shouldn't reparent a UIView's layer without unparenting
the view first.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
2014-03-03 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] WebKit2WebExtension GIR can't be used in vala
https://bugs.webkit.org/show_bug.cgi?id=127179
Reviewed by Martin Robinson.
Add a different pkg-config file for the web extensions API.
* GNUmakefile.am:
* PlatformGTK.cmake:
* webkit2gtk-web-extension.pc.in: Added.
2014-03-02 Darin Adler <darin@apple.com>
Streamline use of TextIterator, cutting down includes and use of soon-to-be-deleted functions
https://bugs.webkit.org/show_bug.cgi?id=129592
Reviewed by Sam Weinig.
* UIProcess/WebPageProxy.cpp: Added now-needed include.
* WebProcess/WebPage/WebPage.cpp: Ditto.
2014-03-02 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Keyboard deadlock when accepting/dismissing autocorrection.
https://bugs.webkit.org/show_bug.cgi?id=129594
<rdar://problem/16168978>
Reviewed by Sam Weinig.
As a temporary fix, we are using a synchronous
message to accept autocorrection until we implement
a solution that processes these requests on a thread that
is not the main thread.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applyAutocorrection):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applyAutocorrection):
(WebKit::WebPage::syncApplyAutocorrection):
2014-03-02 Dan Bernstein <mitz@apple.com>
Try to fix the 32-bit build.
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(adjustedFontSize):
2014-03-02 Sam Weinig <sam@webkit.org>
Page Cache is not enabled when using the modern WebKit2 API
https://bugs.webkit.org/show_bug.cgi?id=129585
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool initWithConfiguration:]):
Default to CacheModelPrimaryWebBrowser until there is a way to configure it.
2014-03-02 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Form controls handling
https://bugs.webkit.org/show_bug.cgi?id=129344
<rdar://problem/16053643>
Reviewed by Simon Fraser.
Adding support for select elements on iOS.
There is full support on iPad, while on iPhone it is
still limited to single select with no groups.
The change also fixes the issue of the keyboard appearing
on screen for types of elements that are implemented with
a popover or a picker.
* Scripts/webkit2/messages.py:
* Shared/AssistedNodeInformation.cpp:
(WebKit::WKOptionItem::encode):
(WebKit::WKOptionItem::decode):
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h:
(WebKit::WKOptionItem::WKOptionItem):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView inputView]):
(-[WKContentView assistedNodeSelectOptions]):
(-[WKContentView _startAssistingNode:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setAssistedNodeSelectedIndex):
* UIProcess/ios/forms/WKFormSelectControl.h:
* UIProcess/ios/forms/WKFormSelectControl.mm: Added.
(-[WKFormSelectControl initWithView:]):
(+[WKFormSelectControl createPeripheralWithView:]):
(-[WKFormSelectControl assistantView]):
(-[WKFormSelectControl beginEditing]):
(-[WKFormSelectControl endEditing]):
* UIProcess/ios/forms/WKFormSelectPicker.mm: Added.
(-[WKSelectSinglePicker initWithView:]):
(-[WKSelectSinglePicker dealloc]):
(-[WKSelectSinglePicker controlView]):
(-[WKSelectSinglePicker controlBeginEditing]):
(-[WKSelectSinglePicker controlEndEditing]):
(-[WKSelectSinglePicker numberOfComponentsInPickerView:]):
(stringByTrimmingWhitespaceAndNewlines):
(-[WKSelectSinglePicker pickerView:numberOfRowsInComponent:]):
(-[WKSelectSinglePicker pickerView:attributedTitleForRow:forComponent:]):
(-[WKSelectSinglePicker pickerView:didSelectRow:inComponent:]):
* UIProcess/ios/forms/WKFormSelectPopover.mm: Added.
(stringWithWritingDirection):
(adjustedFontSize):
(-[WKSelectTableViewController initWithView:hasGroups:]):
(-[WKSelectTableViewController viewWillAppear:]):
(-[WKSelectTableViewController numberOfSectionsInTableView:]):
(-[WKSelectTableViewController tableView:numberOfRowsInSection:]):
(-[WKSelectTableViewController tableView:titleForHeaderInSection:]):
(-[WKSelectTableViewController populateCell:withItem:]):
(-[WKSelectTableViewController findItemIndexAt:]):
(-[WKSelectTableViewController findItemAt:]):
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectTableViewController tableView:didSelectRowAtIndexPath:]):
(-[WKSelectTableViewController hasText]):
(-[WKSelectTableViewController insertText:]):
(-[WKSelectTableViewController deleteBackward]):
(-[WKSelectPopover initWithView:hasGroups:]):
(-[WKSelectPopover dealloc]):
(-[WKSelectPopover controlView]):
(-[WKSelectPopover controlBeginEditing]):
(-[WKSelectPopover controlEndEditing]):
(-[WKSelectPopover _userActionDismissedPopover:]):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setAssistedNodeSelectedIndex):
(WebKit::innerFrameQuad):
(WebKit::WebPage::getPositionInformation):
(WebKit::hasFocusableNode):
(WebKit::WebPage::getAssistedNodeInformation):
(WebKit::WebPage::elementDidFocus):
2014-03-02 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Pages using tiled compositing layers allocate too many tiles on zoom
https://bugs.webkit.org/show_bug.cgi?id=129471
Reviewed by Simon Fraser.
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
A few interesting changes here:
-Now that we do not use setExposedRect, we can pass the exposed area directly
to the drawing area since everything is now in content coordinates :)
-The scale is now converted to float before being compared to the Page's scaleFactor.
The page's scalefactor being a float, the comparison was failing most of the time.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setVisibleExtentContentRect):
2014-03-02 Darin Adler <darin@apple.com>
Change public text iterator API implementations to not depend on 16-bit character pointers
https://bugs.webkit.org/show_bug.cgi?id=129566
Reviewed by Anders Carlsson.
* WebView/WebTextIterator.mm:
(-[WKDOMTextIterator initWithRange:]): Use make_unique instead of adoptPtr.
(-[WKDOMTextIterator advance]): Clear out the upconverted text since we are moving on to the
next text.
(-[WKDOMTextIterator currentTextPointer]): Upconvert if we have 8-bit text.
(-[WKDOMTextIterator currentTextLength]): Call TextIterator::text().length() since we will
probably be removing TextIterator::length eventually.
* WebProcess/WebCoreSupport/WebEditorClient.cpp: Removed unneded include of TextIterator.h.
* WebProcess/WebPage/WebPage.cpp: Ditto.
2014-03-02 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Make impossible to build with <webkit2/webkit2.h> and <webkit2/webkit-web-extension.h> included together
https://bugs.webkit.org/show_bug.cgi?id=129549
Reviewed by Martin Robinson.
Add a compile error to prevent mixing the UI and web process APIs.
* UIProcess/API/gtk/webkit2.h:
* WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:
2014-03-02 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remove the include dir of the C API from the WebKit2 pkg-config file
https://bugs.webkit.org/show_bug.cgi?id=129543
Reviewed by Martin Robinson.
We are not installing the C API headers anymore.
* webkit2gtk.pc.in:
2014-03-01 Tim Horton <timothy_horton@apple.com>
Fix the Mac build.
* UIProcess/mac/ViewGestureController.messages.in:
2014-03-01 Tim Horton <timothy_horton@apple.com>
WebKit2 View Gestures (Smart Magnification): Support for iOS
https://bugs.webkit.org/show_bug.cgi?id=129146
<rdar://problem/16032668>
Reviewed by Benjamin Poulain.
Add support for double-tap smart magnification on iOS.
* DerivedSources.make:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
WKContentView is no longer API, so it can know about WKWebView
and will always have one.
(-[WKWebView contentView:didCommitLayerTree:WebKit::]):
Don't replace the zoom scale if we're currently animating.
(-[WKWebView _takeViewSnapshot]):
Rename.
(-[WKWebView _zoomToPoint:WebCore::atScale:]):
(-[WKWebView _zoomToRect:WebCore::atScale:origin:WebCore::]):
(constrainContentOffset):
(-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
(-[WKWebView _zoomOutWithOrigin:]):
(-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
Add _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:
and _zoomOutWithOrigin: as internal API, for use by SmartMagnificationController via WKContentView.
These will use some heuristics to generally center the target rect in the view
in a way that should match WebKit1 fairly closely.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
Don't use the WKContentViewDelegate protocol for things that don't belong there.
* UIProcess/ios/SmartMagnificationController.h: Added.
* UIProcess/ios/SmartMagnificationController.messages.in: Added.
* UIProcess/ios/SmartMagnificationController.mm: Added.
(WebKit::SmartMagnificationController::SmartMagnificationController):
(WebKit::SmartMagnificationController::~SmartMagnificationController):
(WebKit::SmartMagnificationController::handleSmartMagnificationGesture):
(WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):
SmartMagnificationController sits off of WKContentView, and sends/receives
messages to the WebProcess to do the smart magnification hit-testing.
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
As before, teach WKContentView about its owning WKWebView.
(-[WKContentView _takeViewSnapshot]):
Rename.
(-[WKContentView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
(-[WKContentView _zoomOutWithOrigin:]):
Forward _zoomToRect:::::: and _zoomOutWithOrigin: to WKWebView.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView _doubleTapRecognized:]):
(-[WKContentView _twoFingerDoubleTapRecognized:]):
Forward double tap to the SmartMagnificationController.
* UIProcess/mac/ViewGestureController.h:
* UIProcess/mac/ViewGestureController.messages.in:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
Retrieve the minimum/maximum viewport scale from the WebProcess.
* WebKit2.xcodeproj/project.pbxproj:
Add new files.
* WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::ViewGestureGeometryCollector):
(WebKit::ViewGestureGeometryCollector::dispatchDidCollectGeometryForSmartMagnificationGesture):
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
(WebKit::ViewGestureGeometryCollector::collectGeometryForMagnificationGesture):
Factor out code to send the geometry back to the UI process.
* WebProcess/WebPage/ViewGestureGeometryCollector.h:
* WebProcess/WebPage/ViewGestureGeometryCollector.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
We should have a ViewGestureGeometryCollector on iOS too.
2014-03-01 Zan Dobersek <zdobersek@igalia.com>
Unreviewed follow-up to r164905 and r164912.
* Platform/IPC/Connection.h: Only declare setShouldCloseConnectionOnMachExceptions() for the Mac port.
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching): Only call setShouldCloseConnectionOnMachExceptions() on the Mac port.
2014-03-01 Gavin Barraclough <barraclough@apple.com>
Split UserActivity/CountedUserActivity
https://bugs.webkit.org/show_bug.cgi?id=129520
Reviewed by Sam Weinig.
UserActivity currently provides an interface allowing counted, nested calls to enable/disable.
In some cases it would be easier to use if it were a simpler boolean enabled/disabled interface.
* PluginProcess/PluginProcess.h:
(WebKit::PluginProcess::connectionActivity):
- UserActivity->CountedUserActivity
* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::PluginProcess::platformInitializeProcess):
- beginActivity->start
* Shared/ActivityAssertion.cpp:
(WebKit::ActivityAssertion::ActivityAssertion):
(WebKit::ActivityAssertion::~ActivityAssertion):
- beginActivity->increment, endActivity->decrement.
* Shared/ActivityAssertion.h:
- UserActivity->CountedUserActivity
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::setProcessSuppressionEnabled):
- beginActivity->start, endActivity->stop.
* Shared/ChildProcess.h:
- removed processSuppressionEnabled()
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- beginActivity->start, endActivity->stop.
2014-03-01 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed trivial Linux buildfix after r164905.
setShouldCloseConnectionOnMachExceptions() is defined in the Mac only
Source/WebKit2/Platform/IPC/mac/ConnectionMac.cpp inside !PLATFORM(IOS)
which means PLATFORM(MAC), because nobody else uses this source file.
But ChildProcessProxy.cpp is used by Linux ports too, so we have to
use the most specific #if guard here, which is PLATFORM(MAC).
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
2014-02-28 Simon Fraser <simon.fraser@apple.com>
[iOS] Assertions and bad behavior when zooming into an iframe containing apple.com
https://bugs.webkit.org/show_bug.cgi?id=129537
Reviewed by Benjamin Poulain.
When building RemoteLayerTreeTransactions, the ordering of setting created
layers and doing the recursive tree walk was wrong, such that we failed
to noticed layers created during the recursiveBuildTransaction().
Also harden the UI-side code against Obj-C exceptions thrown when layers
are missing.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties): Assert when
children are not found, and protect against Obj-C exceptions.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
Initialize the members.
* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::buildTransaction): Do the recursive walk
before setting created and destroyed layers, since the walk can create
layers (especially when swapping into tiled layers).
2014-02-28 Jinwoo Song <jinwoo7.song@samsung.com>
Fix WebKit2 build after r164890
https://bugs.webkit.org/show_bug.cgi?id=129533
Reviewed by Simon Fraser.
LayerRepresentation.h is included to WebPageProxy.h in r164890
but it is not used in non Mac or iOS port.
* UIProcess/WebPageProxy.h:
2014-02-28 Alexey Proskuryakov <ap@apple.com>
[Mac] Extract _data->_thumbnailView checks into a helper function
https://bugs.webkit.org/show_bug.cgi?id=129517
Reviewed by Sam Weinig.
* UIProcess/API/mac/WKView.mm:
(-[WKView shouldIgnoreMouseEvents]):
(-[WKView scrollWheel:]):
(-[WKView mouseMoved:]):
(-[WKView mouseDown:]):
(-[WKView mouseUp:]):
(-[WKView mouseDragged:]):
2014-02-28 Pratik Solanki <psolanki@apple.com>
[iOS][WebKit2] Don't use any of the mach exception handling code on iOS
https://bugs.webkit.org/show_bug.cgi?id=129516
Reviewed by Sam Weinig.
This code is not used on iOS after my fix in r164883. We can just move it all under
!PLATFORM(IOS).
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.cpp:
(IPC::Connection::platformInvalidate):
(IPC::Connection::platformInitialize):
(IPC::Connection::open):
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
2014-02-28 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] highlight rects should never big bigger than the view
https://bugs.webkit.org/show_bug.cgi?id=129472
<rdar://problem/15673655>
Reviewed by Enrica Casucci.
The unobscuredRect on WebPageProxy is the "true" view rect as seen by the user.
Use that to constrain our highlight rects.
* UIProcess/ios/WKContentViewInteraction.mm:
(highlightedQuadsFitInRect):
(-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
2014-02-28 Simon Fraser <simon.fraser@apple.com>
Make UIViews for compositing layers in the UI process on iOS
https://bugs.webkit.org/show_bug.cgi?id=129508
Reviewed by Sam Weinig.
In order to parent UIScrollViews for -webkit-overflow-scrolling:touch,
we need to use UIViews in the compositing layer hierarchy on iOS.
Make much of the code that currently uses CALayers layer-or-view
agnostic by using a typedef LayerOrView.
Fix RemoteLayerTreePropertyApplier to apply properties to UIViews
or CALayers; on iOS, we need both paths because we have to set properties
on CALayer for remotely hosted content.
Add iOS-specific implementation files for RemoteLayerTreeHost and RemoteScrollingCoordinatorProxy,
since these need to see the UIView implementation. WebVideoFullscreenManagerProxy.cpp also needs
to be come a .mm file.
* Shared/mac/RemoteLayerTreePropertyApplier.h:
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(-[UIView setSubviews:]):
(WebKit::applyPropertiesToLayer):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* UIProcess/Cocoa/LayerRepresentation.h: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.
(asLayer):
* UIProcess/PageClient.h:
* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
* UIProcess/WebPageProxy.h:
* UIProcess/ios/LayerRepresentation.mm: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.
(asLayer):
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer):
(WebKit::PageClientImpl::acceleratedCompositingRootLayer):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm: Added.
(+[WKTransformView layerClass]):
(-[WKRemoteView initWithFrame:contextID:]):
(+[WKRemoteView layerClass]):
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: Added.
(WebKit::layerRepresentationFromLayerOrView):
(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _setAcceleratedCompositingRootView:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp.
(WebKit::WebVideoFullscreenManagerProxy::create):
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreen):
(WebKit::WebVideoFullscreenManagerProxy::requestExitFullScreen):
(WebKit::WebVideoFullscreenManagerProxy::play):
(WebKit::WebVideoFullscreenManagerProxy::pause):
(WebKit::WebVideoFullscreenManagerProxy::togglePlayState):
(WebKit::WebVideoFullscreenManagerProxy::seekToTime):
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
* UIProcess/mac/RemoteLayerTreeHost.h:
(WebKit::RemoteLayerTreeHost::rootLayer):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::getLayer):
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
(WebKit::WebPageProxy::acceleratedCompositingRootLayer):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::recursiveBuildTransaction):
2014-02-28 Anders Carlsson <andersca@apple.com>
WebKit2.TerminateTwice test is failing.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetStateAfterProcessExited):
Turns out this can be called even when we're in the launching state so don't try to
remove the process from the visited link provider when in that state.
2014-02-28 Chris Fleizach <cfleizach@apple.com>
AX: Crash in WebKit::WebPageProxy::registerWebProcessAccessibilityToken
https://bugs.webkit.org/show_bug.cgi?id=127387
Reviewed by Alexey Proskuryakov.
Speculative fix for crasher. We should check if the connection is still valid before proceeding.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::registerWebProcessAccessibilityToken):
2014-02-28 Timothy Hatcher <timothy@apple.com>
Properly handle when Test.html is not present in Production builds.
https://bugs.webkit.org/show_bug.cgi?id=129506
Reviewed by Joseph Pecoraro.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::isMainOrTestInspectorPage):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
2014-02-28 Pratik Solanki <psolanki@apple.com>
[iOS][WebKit2] Don't grab mach exception port on iOS
https://bugs.webkit.org/show_bug.cgi?id=129505
<rdar://problem/15972749>
Reviewed by Anders Carlsson.
Don't grab the mach exception port on iOS so we get crash logs for web process and network
process.
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
2014-02-28 Brent Fulgham <bfulgham@apple.com>
Unreviewed build fix after r164832.
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::updateProcessState): Switch from removed
'isValid' to 'state() != State::Running'
2014-02-28 Anders Carlsson <andersca@apple.com>
VisitedLinkProvider should keep track of processes, not pages
https://bugs.webkit.org/show_bug.cgi?id=129497
Reviewed by Dan Bernstein.
Use a counted set of WebProcessProxy pointers instead of a set of pages.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
Assert that m_processes is null.
(WebKit::VisitedLinkProvider::addProcess):
Add the process to the set.
(WebKit::VisitedLinkProvider::removeProcess):
Remove the process from the set.
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
If our process is currently running, add it to the visited link provider.
Otherwise it will be added in connectionWillOpen.
(WebKit::WebPageProxy::close):
If our process is running, remove it from the visited link provider.
Otherwise it's either crashed or not yet launched and will not have been added.
(WebKit::WebPageProxy::connectionWillOpen):
Add the process to the visited link provider.
(WebKit::WebPageProxy::resetStateAfterProcessExited):
Remove the process from the visited link provider.
2014-02-27 Alexey Proskuryakov <ap@apple.com>
[Mac] Stop using some deprecated functions in WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129455
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView firstRectForCharacterRange:actualRange:]): Use convertRectToScreen,
which is a replacement for convertBaseToScreen. Don't check for window being null,
because isn't that crazy talk?
(-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]): Use event's location
in window instead of current mouse location. Using location that is not synced to
event stream rarely makes sense, and it doesn't look like this is one of those cases.
(-[WKView performDictionaryLookupAtCurrentMouseLocation]): Ditto.
2014-02-27 Jaehun Lim <ljaehun.lim@samsung.com>
Unreviewed. Fix build after r164832
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
(WebKit::CoordinatedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
2014-02-27 Martin Robinson <mrobinson@igalia.com>
Fix build after r164832
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidUpdateBackingStoreState): WebProcessProxy::isLaunching() has been replaced
by WebProcessProxy::state().
2014-02-27 Tim Horton <timothy_horton@apple.com>
Crash in RemoteLayerTreePropertyApplier::applyPropertiesToLayer
https://bugs.webkit.org/show_bug.cgi?id=129456
<rdar://problem/16182676>
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
We were dereferencing the RemoteLayerBackingStore without checking if it exists,
in the accelerated drawing codepath. This case will occur if a layer
previously drew contents, but now does not.
2014-02-27 Anders Carlsson <andersca@apple.com>
Simplify WebProcessProxy state accessors
https://bugs.webkit.org/show_bug.cgi?id=129453
Reviewed by Andreas Kling.
Replace WebProcessProxy::isLaunching() and WebProcessProxy::isValid() with a single
WebProcessProxy::state() that return one of three values: Launching, Running or Terminated.
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::state):
(WebKit::ChildProcessProxy::sendMessage):
(WebKit::ChildProcessProxy::abortProcessLaunchIfNeeded):
* Shared/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::canSendMessage):
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::getDatabaseProcessConnection):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
* UIProcess/Network/mac/NetworkProcessProxyMac.mm:
(WebKit::NetworkProcessProxy::setProcessSuppressionEnabled):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::getPluginProcessConnection):
(WebKit::PluginProcessProxy::getSitesWithData):
(WebKit::PluginProcessProxy::clearSiteData):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::waitForDidUpdateViewState):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
(WebKit::WebProcessProxy::enableSuddenTermination):
(WebKit::WebProcessProxy::disableSuddenTermination):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):
* UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::updateProcessSuppressionState):
2014-02-27 Simon Fraser <simon.fraser@apple.com>
Crash tapping on play button on video on iOS
https://bugs.webkit.org/show_bug.cgi?id=129452
Reviewed by Benjamin Poulain.
node->computedStyle() can return null. Just use
renderer->style() to get the tap highlight color.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::tapHighlightAtPosition):
2014-02-27 Brian Burg <bburg@apple.com>
Web Inspector: model tests should use a special Test.html inspector page
https://bugs.webkit.org/show_bug.cgi?id=129190
Reviewed by Timothy Hatcher.
Support creating a separate test inspector page, based on the value of
InspectorController::isUnderTest(). Add this as a separate API call for
WebInspectorProxy. Modify the navigation policy to check the URL against
both normal and test inspector pages.
* UIProcess/WebInspectorProxy.cpp:
(WebKit::isMainOrTestInspectorPage):
(WebKit::decidePolicyForNavigationAction):
(WebKit::WebInspectorProxy::createInspectorPageForTest):
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.messages.in:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
* UIProcess/ios/WebInspectorProxyIOS.mm:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::openInspectorFrontend):
* WebProcess/WebPage/WebInspector.cpp: Some drive-by nullptr refactorings.
(WebKit::WebInspector::WebInspector):
(WebKit::WebInspector::createInspectorPage):
(WebKit::WebInspector::createInspectorPageForTest):
(WebKit::WebInspector::destroyInspectorPage):
* WebProcess/WebPage/WebInspector.h:
2014-02-27 Anders Carlsson <andersca@apple.com>
Make WebProcessProxy::pages() return an IteratorRange
https://bugs.webkit.org/show_bug.cgi?id=129440
Reviewed by Dan Bernstein.
* UIProcess/API/C/WKPage.cpp:
(WKPageCopyRelatedPages):
Move the implementation of WebPageProxy::relatedPages here.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcessRespectingProcessCountLimit):
Use std::min_element here instead of a manual loop.
* UIProcess/WebPageProxy.cpp:
Remove WebPageProxy::relatedPages().
* UIProcess/WebProcessProxy.cpp:
Remove WebProcessProxy::pages().
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::pages):
Make this return an IteratorRange.
(WebKit::WebProcessProxy::pageCount):
New function that returns the page count.
2014-02-27 Alexey Proskuryakov <ap@apple.com>
[Mac][WK2] Remove hardcoded Cmd+B and Cmd+I from WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129436
Reviewed by Darin Adler.
* UIProcess/API/mac/WKView.mm: Removed a historic WebKit1 behavior that we don't
need to preserve in WebKit2.
2014-02-27 Alexey Proskuryakov <ap@apple.com>
[Mac] Remove unused SPI declarations from WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129434
Reviewed by Sam Weinig.
* UIProcess/API/mac/WKView.mm:
2014-02-26 Michael Saboff <msaboff@apple.com>
Auto generate bytecode information for bytecode parser and LLInt
https://bugs.webkit.org/show_bug.cgi?id=129181
Reviewed by Mark Lam.
Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit2_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.
* CMakeLists.txt:
2014-02-27 Anders Carlsson <andersca@apple.com>
Look up already existing VisitedLinkTableController objects by identifier
https://bugs.webkit.org/show_bug.cgi?id=129431
Reviewed by Dan Bernstein.
* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::visitedLinkTableControllers):
(WebKit::VisitedLinkTableController::getOrCreate):
(WebKit::VisitedLinkTableController::VisitedLinkTableController):
(WebKit::VisitedLinkTableController::~VisitedLinkTableController):
* WebProcess/WebPage/VisitedLinkTableController.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
2014-02-27 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][WK2] Blocks when fetching plugins information
https://bugs.webkit.org/show_bug.cgi?id=115650
Reviewed by Gustavo Noronha Silva.
Use a persistent cache to store the plugins metadata to avoid
having to load all the plugins everytime a plugin is used for the
first time.
* GNUmakefile.am:
* GNUmakefile.list.am:
* PlatformGTK.cmake:
* Shared/Plugins/Netscape/NetscapePluginModule.h:
* Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
(WebKit::NetscapePluginModule::parseMIMEDescription): Make this
method public.
(WebKit::NetscapePluginModule::buildMIMEDescription): Added this
helper to build the MIME description string.
* UIProcess/Plugins/gtk/PluginInfoCache.cpp: Added.
(WebKit::PluginInfoCache::shared):
(WebKit::PluginInfoCache::PluginInfoCache):
(WebKit::PluginInfoCache::~PluginInfoCache):
(WebKit::PluginInfoCache::saveToFileIdleCallback):
(WebKit::PluginInfoCache::saveToFile):
(WebKit::PluginInfoCache::getPluginInfo):
(WebKit::PluginInfoCache::updatePluginInfo):
* UIProcess/Plugins/gtk/PluginInfoCache.h: Added.
* UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
(WebKit::PluginInfoStore::getPluginInfo): Check first if we have
metadata of the plugin in the cache and update the cache if we
loaded the plugin to get its metadata.
2014-02-27 Ryan Lortie <desrt@desrt.ca>
need to #include <libgen.h> for basename
https://bugs.webkit.org/show_bug.cgi?id=128597
Reviewed by Carlos Garcia Campos.
* PluginProcess/unix/PluginProcessMainUnix.cpp: include <libgen.h> as required by POSIX for basename
2014-02-27 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Web Inspector doesn't work with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=127651
Reviewed by Sergio Villar Senin.
The problem is that the web inspector loads so many resources,
that when using the network process, a lot of IPC traffic is
generated causing the send buffer of the socket to be full. When
that happens sendmsg() fails with EAGAIN, because we are using non
blocking sockets, and we are not handling neither EAGAIN nor
EWOULDBLOCK errors (we do when reading from the socket, though).
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::readyReadHandler): Add a log message to know
when reading from the socket fails for any unhandled error.
(IPC::Connection::sendOutgoingMessage): Handle EAGAIN and
EWOULDBLOCK errors to try again in those cases. Also add a log
message for unhandled errors.
2014-02-26 Philippe Normand <pnormand@igalia.com>
Unreviewed GTK build fix after r164751.
* GNUmakefile.list.am:
2014-02-26 Dan Bernstein <mitz@apple.com>
iOS build fix.
* UIProcess/ios/forms/WKFormPopover.h:
* UIProcess/ios/forms/WKFormPopover.mm:
2014-02-26 Dan Bernstein <mitz@apple.com>
Replaced use of the EXCLUDED_SOURCE_FILE_NAMES build setting with #if PLATFORM(…) guards in
the files themselves.
Rubber-stamped by Sam Weinig.
* Configurations/WebKit2.xcconfig: Cleared out EXCLUDED_SOURCE_FILE_NAMES_macosx, and left
EXCLUDED_SOURCE_FILE_NAMES_iphoneos containing just the names of resources the should be
excluded from Copy Files build phases.
* NetworkProcess/ios/NetworkProcessIOS.mm:
* NetworkProcess/mac/NetworkProcessMac.mm:
* Shared/Downloads/ios/DownloadIOS.mm:
* Shared/Downloads/mac/DownloadMac.mm:
* Shared/NativeWebTouchEvent.h:
* Shared/WebPlatformTouchPoint.cpp:
* Shared/WebTouchEvent.cpp:
* Shared/ios/NativeWebKeyboardEventIOS.mm:
* Shared/ios/NativeWebTouchEventIOS.mm:
* Shared/ios/WebIOSEventFactory.h:
* Shared/ios/WebIOSEventFactory.mm:
* Shared/mac/PasteboardTypes.h:
* Shared/mac/PasteboardTypes.mm:
* Shared/mac/PrintInfoMac.mm:
* UIProcess/API/C/WKInspector.cpp:
* UIProcess/API/Cocoa/WKThumbnailView.h:
* UIProcess/API/Cocoa/WKThumbnailView.mm:
* UIProcess/API/Cocoa/WKThumbnailViewInternal.h:
* UIProcess/API/ios/WKViewIOS.mm:
* UIProcess/API/mac/WKView.mm:
* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/ios/TextCheckerIOS.mm:
* UIProcess/ios/ViewGestureControllerIOS.mm:
* UIProcess/ios/WKActionSheet.h:
* UIProcess/ios/WKActionSheet.mm:
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
* UIProcess/ios/WKContentView.mm:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
* UIProcess/ios/WKGeolocationProviderIOS.h:
* UIProcess/ios/WKGeolocationProviderIOS.mm:
* UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:
* UIProcess/ios/WKScrollView.h:
* UIProcess/ios/WKScrollView.mm:
* UIProcess/ios/WebInspectorProxyIOS.mm:
* UIProcess/ios/WebPageProxyIOS.mm:
* UIProcess/ios/WebProcessProxyIOS.mm:
* UIProcess/ios/forms/WKFormInputControl.h:
* UIProcess/ios/forms/WKFormInputControl.mm:
* UIProcess/ios/forms/WKFormPopover.h:
* UIProcess/ios/forms/WKFormPopover.mm:
* UIProcess/mac/FindIndicatorWindow.h:
* UIProcess/mac/FindIndicatorWindow.mm:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
* UIProcess/mac/TextCheckerMac.mm:
* UIProcess/mac/WKFullKeyboardAccessWatcher.h:
* UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
* UIProcess/mac/WKPrintingView.h:
* UIProcess/mac/WKPrintingView.mm:
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
* UIProcess/mac/WebInspectorProxyMac.mm:
* UIProcess/mac/WebPageProxyMac.mm:
* UIProcess/mac/WebProcessProxyMac.mm:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
* WebProcess/WebCoreSupport/ios/WebDatabaseManagerIOS.mm:
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
* WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
* WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm:
* WebProcess/WebPage/ios/WebPageIOS.mm:
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h:
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:
2014-02-26 Anders Carlsson <andersca@apple.com>
VisitedLinkProvider should know which pages it belongs to
https://bugs.webkit.org/show_bug.cgi?id=129410
Reviewed by Dan Bernstein.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
(WebKit::VisitedLinkProvider::addPage):
(WebKit::VisitedLinkProvider::removePage):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
2014-02-26 Enrica Casucci <enrica@apple.com>
Build fix.
Unexpected line break.
* Configurations/WebKit2.xcconfig:
2014-02-26 Enrica Casucci <enrica@apple.com>
Build fix.
WKFormInputControl.mm and WKFormPopover.mm should be excluded from OS X builds.
* Configurations/WebKit2.xcconfig:
2014-02-26 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Form controls handling: implement date and time controls.
https://bugs.webkit.org/show_bug.cgi?id=129344
Reviewed by Simon Fraser and Joseph Pecoraro.
This is another step in the implementation of form controls on iOS
for WebKit2. This adds support for date and time input elements supporting
the different look and feel for iPhone and iPad.
WKDateTimePicker implements iPhone UI and
WKDateTimePopover implements iPad UI.
WKFormRotatingAccessoryPopover and WKRotatingPopover are
classes that implement the popover object handling the rotation
and they will be used as base class for the select controls as well.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView inputView]):
(-[WKContentView _startAssistingNode:]):
(-[WKContentView _stopAssistingNode]):
* UIProcess/ios/WKFormInputControl.h: Added.
* UIProcess/ios/WKFormInputControl.mm: Added.
(-[WKDateTimePicker datePicker]):
(-[WKDateTimePicker initWithView:datePickerMode:]):
(-[WKDateTimePicker dealloc]):
(-[WKDateTimePicker controlView]):
(-[WKDateTimePicker _timeZoneOffsetFromGMT:]):
(-[WKDateTimePicker _sanitizeInputValueForFormatter:]):
(-[WKDateTimePicker _dateChangedSetAsNumber]):
(-[WKDateTimePicker _dateChangedSetAsString]):
(-[WKDateTimePicker _dateChanged]):
(-[WKDateTimePicker _dateChangeHandler:]):
(-[WKDateTimePicker controlBeginEditing]):
(-[WKDateTimePicker controlEndEditing]):
(-[WKFormInputControl initWithView:]):
(+[WKFormInputControl createPeripheralWithView:]):
(-[WKFormInputControl beginEditing]):
(-[WKFormInputControl endEditing]):
(-[WKFormInputControl assistantView]):
(-[WKDateTimePopoverViewController initWithView:datePickerMode:]):
(-[WKDateTimePopoverViewController innerControl]):
(-[WKDateTimePopoverViewController loadView]):
(-[WKDateTimePopover clear:]):
(-[WKDateTimePopover initWithView:datePickerMode:]):
(-[WKDateTimePopover viewController]):
(-[WKDateTimePopover controlBeginEditing]):
(-[WKDateTimePopover controlEndEditing]):
(-[WKDateTimePopover controlView]):
* UIProcess/ios/WKFormPeripheral.h: Added.
* UIProcess/ios/WKFormPopover.h: Added.
* UIProcess/ios/WKFormPopover.mm: Added.
(-[WKFormRotatingAccessoryPopover initWithView:]):
(-[WKFormRotatingAccessoryPopover accessoryDone]):
(-[WKFormRotatingAccessoryPopover popoverArrowDirections]):
(-[WKFormRotatingAccessoryPopover popoverWasDismissed:]):
(-[WKRotatingPopover initWithView:]):
(-[WKRotatingPopover dealloc]):
(-[WKRotatingPopover popoverController]):
(-[WKRotatingPopover setPopoverController:]):
(-[WKRotatingPopover popoverArrowDirections]):
(-[WKRotatingPopover presentPopoverAnimated:]):
(-[WKRotatingPopover dismissPopoverAnimated:]):
(-[WKRotatingPopover willRotate:]):
(-[WKRotatingPopover didRotate:]):
(-[WKRotatingPopover popoverControllerDidDismissPopover:]):
* UIProcess/ios/WKFormSelectControl.h: Added.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setAssistedNodeValue):
(WebKit::WebPageProxy::setAssistedNodeValueAsNumber):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setAssistedNodeValue):
(WebKit::WebPage::setAssistedNodeValueAsNumber):
2014-02-26 Pratik Solanki <psolanki@apple.com>
[iOS][Webkit2] Enable codesigning entitlement for web process
https://bugs.webkit.org/show_bug.cgi?id=129401
<rdar://problem/16173873>
Reviewed by Geoffrey Garen.
* Configurations/WebContent-iOS.entitlements:
2014-02-26 Anders Carlsson <andersca@apple.com>
Give VisitedLinkProviders an identifier and send them to the web process
https://bugs.webkit.org/show_bug.cgi?id=129400
Reviewed by Dan Bernstein.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/Cocoa/WKVisitedLinkProviderInternal.h:
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::generateIdentifier):
(WebKit::VisitedLinkProvider::VisitedLinkProvider):
* UIProcess/VisitedLinkProvider.h:
(WebKit::VisitedLinkProvider::identifier):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createWebPage):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::internalShowContextMenu):
* UIProcess/WebPageProxy.h:
2014-02-26 Jinwoo Song <jinwoo7.song@samsung.com>
Unreviewed CMAKE build fix after r164751.
* CMakeLists.txt: Renamed WebVisitedLinkProvider.cpp to VisitedLinkTableController.cpp.
2014-02-26 Anders Carlsson <andersca@apple.com>
Rename WebVisitedLinkProvider to VisitedLinkTableController
https://bugs.webkit.org/show_bug.cgi?id=129396
Reviewed by Dan Bernstein.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/VisitedLinkTableController.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/WebVisitedLinkProvider.cpp.
(WebKit::VisitedLinkTableController::create):
(WebKit::VisitedLinkTableController::VisitedLinkTableController):
(WebKit::VisitedLinkTableController::~VisitedLinkTableController):
(WebKit::VisitedLinkTableController::isLinkVisited):
(WebKit::VisitedLinkTableController::addVisitedLink):
* WebProcess/WebPage/VisitedLinkTableController.h: Renamed from Source/WebKit2/WebProcess/WebPage/WebVisitedLinkProvider.h.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
2014-02-26 Enrica Casucci <enrica@apple.com>
Keyboard keeps showing up when clicking links after being shown once.
https://bugs.webkit.org/show_bug.cgi?id=129392
Reviewed by Benjamin Poulain.
This is a regression introduced by http://trac.webkit.org/changeset/164690.
_requiresKeyboardWhenFirstResponder should always return NO, if there is
no assisted node.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
2014-02-26 Myles C. Maxfield <mmaxfield@apple.com>
WebProcessProxy::updateProcessState() is causing duplicate symbol linker errors
https://bugs.webkit.org/show_bug.cgi?id=129390
Reviewed by Tim Horton.
Caused by r164737. WebProcessProxy::updateProcessState() is defined in a header, outside of
a class, but isn't inlined.
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::updateProcessState):
2014-02-26 Brian Burg <bburg@apple.com>
Web Replay: route through UserInputBridge when delivering user inputs to WebCore
https://bugs.webkit.org/show_bug.cgi?id=128150
Reviewed by Timothy Hatcher.
When delivering user inputs to WebCore, route calls through the page's UserInputBridge.
This allows us to capture and replay user inputs from WebKit2 solely within WebCore.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::tryClose):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::stopLoadingFrame):
(WebKit::WebPage::stopLoading):
(WebKit::WebPage::reload):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::handleContextMenuEvent):
(WebKit::handleMouseEvent):
(WebKit::handleWheelEvent):
(WebKit::handleKeyEvent):
(WebKit::WebPage::scroll):
(WebKit::WebPage::logicalScroll):
2014-02-26 Pratik Solanki <psolanki@apple.com>
[iOS][WebKit2] Adopt SPI for managing tabs
https://bugs.webkit.org/show_bug.cgi?id=129188
<rdar://problem/15939827>
Reviewed by Gavin Barraclough.
Call into assertions SPI to mark tabs as foreground and background.
* Configurations/WebKit2.xcconfig:
* Platform/IPC/Connection.h:
(IPC::Connection::xpcConnection): Expose the xpc_connection_t.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::updateProcessState):
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::updateProcessState): Added. This goes through the list of
WebPageProxies and sets the process state to foreground if one of them is in a window.
Otherwise, it sets it to background.
2014-02-26 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r164725 and r164731.
http://trac.webkit.org/changeset/164725
http://trac.webkit.org/changeset/164731
https://bugs.webkit.org/show_bug.cgi?id=129382
WebKitTestRunner build is broken on IOS (Requested by smfr on
#webkit).
* UIProcess/API/Cocoa/WKView.h:
* UIProcess/API/ios/WKViewIOS.mm: Added.
(-[WKView initWithCoder:]):
(-[WKView initWithFrame:processGroup:browsingContextGroup:]):
(-[WKView initWithFrame:processGroup:browsingContextGroup:relatedToView:]):
(-[WKView dealloc]):
(-[WKView setFrame:]):
(-[WKView setBounds:]):
(-[WKView scrollView]):
(-[WKView browsingContextController]):
(-[WKView setAllowsBackForwardNavigationGestures:]):
(-[WKView allowsBackForwardNavigationGestures]):
(-[WKView viewForZoomingInScrollView:]):
(-[WKView scrollViewWillBeginZooming:withView:]):
(-[WKView scrollViewWillBeginDragging:]):
(-[WKView _didFinishScrolling]):
(-[WKView scrollViewDidEndDragging:willDecelerate:]):
(-[WKView scrollViewDidEndDecelerating:]):
(-[WKView scrollViewDidScrollToTop:]):
(-[WKView scrollViewDidScroll:]):
(-[WKView scrollViewDidZoom:]):
(-[WKView scrollViewDidEndZooming:withView:atScale:]):
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
(-[WKView _frameOrBoundsChanged]):
(-[WKView _updateVisibleContentRects]):
(-[WKView _keyboardChangedWithInfo:adjustScrollView:]):
(-[WKView _keyboardWillChangeFrame:]):
(-[WKView _keyboardDidChangeFrame:]):
(-[WKView _keyboardWillShow:]):
(-[WKView _keyboardWillHide:]):
(-[WKView pageRef]):
(-[WKView initWithFrame:contextRef:pageGroupRef:]):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
(-[WKView minimumLayoutSizeOverride]):
(-[WKView setMinimumLayoutSizeOverride:]):
(-[WKView _obscuredInsets]):
(-[WKView _setObscuredInsets:]):
(-[WKView _beginInteractiveObscuredInsetsChange]):
(-[WKView _endInteractiveObscuredInsetsChange]):
(-[WKView _pageExtendedBackgroundColor]):
(-[WKView _setBackgroundExtendsBeyondPage:]):
(-[WKView _backgroundExtendsBeyondPage]):
* WebKit2.xcodeproj/project.pbxproj:
2014-02-26 Simon Fraser <simon.fraser@apple.com>
Build fix: ContextMenuContextData.* should not be in the Copy Files
phase.
* WebKit2.xcodeproj/project.pbxproj:
2014-02-26 Simon Fraser <simon.fraser@apple.com>
Fix MiniBrowser/WebKitTestRunner link errors; WKView still
needs to be exported while these tools are using it.
* UIProcess/API/Cocoa/WKView.h:
2014-02-26 Simon Fraser <simon.fraser@apple.com>
Fix the iOS build by wrapping some context menu stuff in #if ENABLE(CONTEXT_MENUS)
* UIProcess/WebPageProxy.h:
2014-02-26 Martin Hock <mhock@apple.com>
Create SessionID value-style class for session IDs.
https://bugs.webkit.org/show_bug.cgi?id=129141
The below changes deal solely with mechanical changes to use the SessionID value class instead of uint64_t except where noted.
Reviewed by Sam Weinig.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::storageSession):
(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::deleteCookie):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::ensurePrivateBrowsingSession):
(WebKit::NetworkProcess::destroyPrivateBrowsingSession):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/RemoteNetworkingContext.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
* NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
* Shared/Network/NetworkResourceLoadParameters.h:
* Shared/SessionTracker.cpp:
(WebKit::staticSessionMap):
(WebKit::storageSessionToID):
(WebKit::SessionTracker::sessionMap):
(WebKit::SessionTracker::session):
(WebKit::SessionTracker::sessionID):
(WebKit::SessionTracker::setSession):
(WebKit::SessionTracker::destroySession):
* Shared/SessionTracker.h: Move code to SessionID class.
* Shared/WebCoreArgumentCoders.cpp: Add encode and decode for SessionID.
(IPC::ArgumentCoder<SessionID>::encode):
(IPC::ArgumentCoder<SessionID>::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/CookieStorageShim.mm:
(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):
* UIProcess/APISession.cpp:
(API::generateID):
(API::Session::defaultSession):
(API::Session::legacyPrivateSession):
(API::Session::Session):
(API::Session::isEphemeral):
(API::Session::getID):
* UIProcess/APISession.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebContext::createNewWebProcess):
* UIProcess/WebContext.h:
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::sessionID):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
* WebProcess/WebPage/WebPage.cpp: Move sessionID to Page to allow WebCore to access it.
(WebKit::WebPage::WebPage):
(WebKit::WebPage::sessionID):
(WebKit::WebPage::isUsingEphemeralSession):
(WebKit::WebPage::setSessionID):
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensurePrivateBrowsingSession):
(WebKit::WebProcess::destroyPrivateBrowsingSession):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2014-02-26 Anders Carlsson <andersca@apple.com>
Get rid of WKViewIOS.mm
https://bugs.webkit.org/show_bug.cgi?id=129378
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKView.h:
* UIProcess/API/ios/WKViewIOS.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2014-02-26 Alexey Proskuryakov <ap@apple.com>
[iOS] Remove some erroneously captured blocks
https://bugs.webkit.org/show_bug.cgi?id=129362
Reviewed by Sam Weinig.
Remove unused captured Objective-C block variables (capturing these doesn't work anyway).
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
2014-02-26 Brady Eidson <beidson@apple.com>
Pipe experimental image controls menu up to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=129339
Reviewed by Simon Fraser.
Add a WebKit object to represent the data from a ContextMenuContext object that can be shared via IPC:
* Shared/ContextMenuContextData.cpp: Added.
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
* Shared/ContextMenuContextData.h: Added.
(WebKit::ContextMenuContextData::webHitTestResultData):
(WebKit::ContextMenuContextData::isImageControl):
Update the rest of WK2 to use this object instead of WebHitTestResult::Data directly:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::internalShowContextMenu): Also make an ENABLE(IMAGE_CONTROLS) change here.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::show):
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebKit2.xcodeproj/project.pbxproj:
2014-02-26 Enrique Ocaña González <eocanha@igalia.com>
WebKitFindOptions shouldn't expose WEBKIT_FIND_OPTIONS_SHOW_{OVERLAY,FIND_INDICATOR,HIGHLIGHT}
https://bugs.webkit.org/show_bug.cgi?id=129263
Reviewed by Sergio Villar Senin.
Avoided the need of WEBKIT_FIND_OPTIONS_SHOW_* fields by changing the semantics
of the findOptions field in WebKitFindOptions.
* UIProcess/API/gtk/WebKitFindController.cpp: Now
_WebKitFindControllerPrivate.findOptions is interpreted as WebKit::FindOptions
instead of WebKitFindOptions like before. Now the conversion has to be done in
both ways.
(toWebKitFindOptions): Added conversion function from WebKit::FindOptions to
WebKitFindOptions.
(webkit_find_controller_get_options):
(webKitFindControllerPerform):
(webkit_find_controller_search):
(webkit_find_controller_search_next):
(webkit_find_controller_search_previous):
(webkit_find_controller_count_matches):
* UIProcess/API/gtk/WebKitFindController.h: Removed values that shouldn't be
exposed.
2014-02-26 Gergo Balogh <gbalogh.u-szeged@partner.samsung.com>
Inspector server should be enabled only when the web sockets is enabled too.
https://bugs.webkit.org/show_bug.cgi?id=129304
Reviewed by Csaba Osztrogonác.
* config.h:
2014-02-26 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r164702.
* UIProcess/DrawingAreaProxy.cpp:
2014-02-26 Martin Robinson <mrobinson@igalia.com>
[GTK] generate-gtkdoc can fail with WebKit1 or WebKit2 only builds
https://bugs.webkit.org/show_bug.cgi?id=129319
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: Do not generate the documentation configuration file if the port
is disabled.
2014-02-25 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Split the rects/scale updates in 3 internally consistent groups
https://bugs.webkit.org/show_bug.cgi?id=129354
Reviewed by Sam Weinig.
During scaling, the scale and rect of UIScrollView, WebPageProxy, DrawingAreaProxy,
DrawingArea and WebPage were in completely inconsistent states.
Some of those disconnect were temporary (like when setting the rect and scale in two different
messages), some were lasting the time of a tile update (like the UIProcess view of the scale).
This was causing various visual glitches.
To fix this, all the updates from the UIProcess are funneled through a single path and the values
are split into 3 different groups/types.
When updating the scale/rects, the UIProcess sends the new information to the WebProcess on a queue
through ViewUpdateDispatcher. There, the updates are accumulated until the MainThread is available.
Once the main thread is "unblocked" from the previous frame, all the data are updated at once from
the last known state in ViewUpdateDispatcher. The new tiles are created for the new converage information
and they are sent to the UIProcess.
At any point, there are 3 types of scale and rects used for different purpose:
-In the UIProcess, there is the UIScrollView scale and rects which represent the "true" state or what
is currently on screen.
That information is mirrored into WebPageProxy for the other classes needing it like DrawingAreaProxy.
-In the WebProcess, there is the last known state. That state is always lagging a little behind the "true"
state.
-Back in the UIProcess, we have the tile states that is attached to RemoteLayerTreeTransaction. It is used
to setup the rendering.
With this change, there are two paths for updating the page scale factor:
-The UI drives the change, the updates goes WKWebView->WKContentView->WebPageProxy->ViewUpdateDispatcher
->WebPage->RemoteLayerTreeDrawingArea->RemoteLayerTreeDrawingAreaProxy->WKContentView->WKWebView.
-If changes in the content force scaling parameters, the updates goes: WebPage->RemoteLayerTreeDrawingArea
->RemoteLayerTreeDrawingAreaProxy->WKContentView->WKWebView.
The two kind of updates frequently conflicts during loading. We differentiate those through the flag
scaleWasSetByUIProcess passed with the updates. In cases of conflicts, the user always wins.
* DerivedSources.make:
* Scripts/webkit2/messages.py:
(struct_or_class):
* Shared/VisibleContentRectUpdateInfo.cpp: Added.
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h: Added.
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::exposedRect):
(WebKit::VisibleContentRectUpdateInfo::unobscuredRect):
(WebKit::VisibleContentRectUpdateInfo::scale):
(WebKit::operator==):
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::scaleWasSetByUIProcess):
(WebKit::RemoteLayerTreeTransaction::setScaleWasSetByUIProcess):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView contentView:didCommitLayerTree:WebKit::]):
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRectsWithStableState:]):
(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _endInteractiveObscuredInsetsChange]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _updateVisibleContentRects]):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::setCustomFixedPositionRect):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::updateDebugIndicator):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::displayedContentScale):
(WebKit::WebPageProxy::exposedContentRect):
(WebKit::WebPageProxy::unobscuredContentRect):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
(-[WKContentView didFinishScrolling]):
(-[WKContentView didZoomToScale:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateVisibleContentRects):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::scaledExposedRect):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorScale):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/ViewUpdateDispatcher.cpp: Added.
(WebKit::ViewUpdateDispatcher::create):
(WebKit::ViewUpdateDispatcher::ViewUpdateDispatcher):
(WebKit::ViewUpdateDispatcher::~ViewUpdateDispatcher):
(WebKit::ViewUpdateDispatcher::initializeConnection):
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
* WebProcess/WebPage/ViewUpdateDispatcher.h: Added.
* WebProcess/WebPage/ViewUpdateDispatcher.messages.in: Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::scalePage):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::scaleWasSetByUIProcess):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::tapHighlightAtPosition):
(WebKit::WebPage::updateVisibleContentRects):
(WebKit::WebPage::willStartUserTriggeredZooming):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):
* WebProcess/WebProcess.h:
2014-02-25 Anders Carlsson <andersca@apple.com>
Rename WebCore::VisitedLinkProvider to WebCore::VisitedLinkStore
https://bugs.webkit.org/show_bug.cgi?id=129357
Reviewed by Sam Weinig.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebVisitedLinkProvider.h:
2014-02-25 Enrica Casucci <enrica@apple.com>
[WebKit2] Form controls handling.
https://bugs.webkit.org/show_bug.cgi?id=129344
<rdar://problem/16053643>
Reviewed by Simon Fraser and Joseph Pecoraro.
This is the step toward adding support for
form controls iOS style. It adds the logic to
select the appropriate keyboard type based on the
element type and introduces the AssistedNodeInformation
structure used currently for the keyboard type selection
and that will be used to populate pickers and popovers.
It also provides information to enable/disable next/previous
buttons in the accessory view.
* Scripts/webkit2/messages.py:
(struct_or_class):
* Shared/AssistedNodeInformation.cpp: Added.
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h: Added.
(WebKit::AssistedNodeInformation::AssistedNodeInformation):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::startAssistingNode):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
(-[WKContentView _updateAccessory]):
(toUITextAutocapitalize):
(-[WKContentView textInputTraits]):
(-[WKContentView assistedNodeInformation]):
(-[WKContentView _startAssistingNode:]):
(-[WKContentView _stopAssistingNode]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startAssistingNode):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::isAssistableNode):
(WebKit::hasFocusableNode):
(WebKit::WebPage::getAssistedNodeInformation):
(WebKit::WebPage::elementDidFocus):
2014-02-25 Anders Carlsson <andersca@apple.com>
VisitedLinkProvider should be refcounted
https://bugs.webkit.org/show_bug.cgi?id=129351
Reviewed by Sam Weinig.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::create):
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::processDidFinishLaunching):
(WebKit::WebContext::disconnectProcess):
(WebKit::WebContext::addVisitedLinkHash):
* UIProcess/WebContext.h:
2014-02-25 Anders Carlsson <andersca@apple.com>
Make WebContext handle populating visited links
https://bugs.webkit.org/show_bug.cgi?id=129348
Reviewed by Tim Horton.
This makes it possible to decouple VisitedLinkProvider from WebContext.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::VisitedLinkProvider):
(WebKit::VisitedLinkProvider::processDidFinishLaunching):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::processDidFinishLaunching):
* UIProcess/WebContext.h:
2014-02-25 Anders Carlsson <andersca@apple.com>
DrawingAreaProxy is using WebCore's Timer
https://bugs.webkit.org/show_bug.cgi?id=129347
<rdar://problem/16078133>
Reviewed by Tim Horton.
Use a RunLoop::Timer instead.
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::exposedRectChangedTimerFired):
* UIProcess/DrawingAreaProxy.h:
2014-02-25 Anders Carlsson <andersca@apple.com>
Add WKVisitedLinkProvider
https://bugs.webkit.org/show_bug.cgi?id=129343
Reviewed by Sam Weinig.
* UIProcess/API/Cocoa/WKVisitedLinkProvider.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
* UIProcess/API/Cocoa/WKVisitedLinkProvider.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
* UIProcess/API/Cocoa/WKVisitedLinkProviderInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
* UIProcess/API/Cocoa/WKVisitedLinkProviderPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration visitedLinkProvider]):
(-[WKWebViewConfiguration setVisitedLinkProvider:]):
* WebKit2.xcodeproj/project.pbxproj:
2014-02-25 Anders Carlsson <andersca@apple.com>
Simplify visited link style invalidation
https://bugs.webkit.org/show_bug.cgi?id=129340
Reviewed by Dan Bernstein.
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::addVisitedLink):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::visitedLinkStateChanged):
(WebKit::WebProcess::allVisitedLinkStateChanged):
2014-02-25 Anders Carlsson <andersca@apple.com>
Fix build.
Remove VisitedLinkStrategy.
* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
* NetworkProcess/NetworkProcessPlatformStrategies.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2014-02-25 Alexey Proskuryakov <ap@apple.com>
Rolling out http://trac.webkit.org/changeset/164611, because it broke
WebKit2.PrivateBrowsingPushStateNoHistoryCallback API test
The change was for:
https://bugs.webkit.org/show_bug.cgi?id=129141
Create SessionID class
2014-02-25 Dan Bernstein <mitz@apple.com>
[Cocoa] Add delegate method for customizing actions on activated elements
https://bugs.webkit.org/show_bug.cgi?id=129290
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added. Declared new delegate method.
* UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
(_WKActivatedElementType): Defined enum of element types.
* UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
(-[_WKActivatedElementInfo _initWithType:URL:location:title:rect:]): Added type parameter
to the initializer, used to set the new type property.
* UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
* UIProcess/Cocoa/UIClient.h:
* UIProcess/Cocoa/UIClient.mm:
(WebKit::UIClient::setDelegate): Initialize webViewActionsForElementDefaultActions member
of m_delegateMethods.
(WebKit::UIClient::actionsForElement): Added. Calls out to the new delegate method if
implemented. Otherwise returns the default actions.
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]): Use new _elementInfo ivar
instead of creating element info here.
(-[WKActionSheetAssistant showImageSheet]): Create element info here and assign it to
_elementInfo ivar if presenting a sheet. Call the UI client to get custom actions.
(-[WKActionSheetAssistant showLinkSheet]): Ditto.
(-[WKActionSheetAssistant cleanupSheet]): Clear _elementInfo ivar.
* WebKit2.xcodeproj/project.pbxproj: Added reference to WKUIDelegatePrivate.h.
2014-02-25 Michał Pakuła vel Rutka <m.pakula@samsung.com>
Unreviewed EFL build fix attempt after r164562
* CMakeLists.txt: Added WebVisitedLinkProvider.cpp.
2014-02-25 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Add ENABLE flag
https://bugs.webkit.org/show_bug.cgi?id=129153
Reviewed by Simon Fraser.
Added ENABLE_CSS_GRID_LAYOUT feature flag.
* Configurations/FeatureDefines.xcconfig:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
2014-02-25 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix after r164652.
* GNUmakefile.list.am: Add WebVisitedLinkProvider build targets.
2014-02-24 Anders Carlsson <andersca@apple.com>
Make it possible to set the visited link provider on a per page basis
https://bugs.webkit.org/show_bug.cgi?id=129288
Reviewed by Andreas Kling.
Add WebVisitedLinkProvider which just calls the web process.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebVisitedLinkProvider.cpp: Added.
(WebKit::WebVisitedLinkProvider::create):
(WebKit::WebVisitedLinkProvider::WebVisitedLinkProvider):
(WebKit::WebVisitedLinkProvider::~WebVisitedLinkProvider):
(WebKit::WebVisitedLinkProvider::isLinkVisited):
(WebKit::WebVisitedLinkProvider::addVisitedLink):
* WebProcess/WebPage/WebVisitedLinkProvider.h: Added.
2014-02-25 Dan Bernstein <mitz@apple.com>
Build fix for case-sensitive filesystems.
* WebProcess/ios/WebVideoFullscreenManager.cpp:
2014-02-24 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Mark view source mode methods as deprecated
https://bugs.webkit.org/show_bug.cgi?id=128920
Reviewed by Martin Robinson.
Mark WEBKIT_VIEW_MODE_SOURCE as deprecated in documentation and
only show warnings when set_view_mode is used with WEBKIT_VIEW_MODE_SOURCE.
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_set_view_mode):
(webkit_web_view_get_view_mode):
* UIProcess/API/gtk/WebKitWebView.h:
2014-02-24 Alexey Proskuryakov <ap@apple.com>
[Mac] Stop looking for plug-in profiles in /S/L/Sandbox/Profiles
https://bugs.webkit.org/show_bug.cgi?id=129262
<rdar://problem/16149420>
Reviewed by Sam Weinig.
Remove unused code.
* Shared/Plugins/mac/PluginSandboxProfile.mm:
(WebKit::pluginSandboxProfileDirectory):
(WebKit::pluginSandboxCommonProfile):
(WebKit::pluginSandboxProfile):
(WebKit::pluginHasSandboxProfile):
2014-02-24 Martin Robinson <mrobinson@igalia.com>
[GTK] generate-gtkdoc should not generate documentation for source files for unbuilt source files
https://bugs.webkit.org/show_bug.cgi?id=128417
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: Generate a config file for generate-gtkdoc.
* PlatformGTK.cmake: Ditto.
2014-02-24 Dan Bernstein <mitz@apple.com>
32-bit build fix.
* UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction elementActionWithType:customTitle:]):
2014-02-24 Dan Bernstein <mitz@apple.com>
[Cocoa] Start adding API for customizing actions on activated elements
https://bugs.webkit.org/show_bug.cgi?id=129284
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/_WKActivatedElementInfo.h: Added. Includes the public interface of what
was WKElementActionInfo.
* UIProcess/API/Cocoa/_WKActivatedElementInfo.m: Added.
(-[_WKActivatedElementInfo _initWithURL:location:title:rect:]): Moved and renamed internal
initializer from WKElementActionInfo.
(-[_WKActivatedElementInfo dealloc]): Moved from WKElementActionInfo.
(-[_WKActivatedElementInfo _boundingRect]): Added private accessor.
(-[_WKActivatedElementInfo _interactionLocation]): Ditto.
* UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: Added.
* UIProcess/API/Cocoa/_WKElementAction.h: Added.
(_WKElementActionType): Moved from WKActionSheet.h and turned into a proper NS_ENUM.
* UIProcess/API/Cocoa/_WKElementAction.mm: Added.
(-[_WKElementAction _initWithTitle:actionHandler:type:]): Moved and renamed internal
initializer from WKActionSheet.mm.
(-[_WKElementAction dealloc]): Moved from WKActionSheet.mm.
(+[_WKElementAction elementActionWithTitle:actionHandler:]): Moved and renamed.
(copyElement): Moved from WKActionSheet.mm.
(saveImage): Ditto.
(addToReadingList): Ditto.
(+[_WKElementAction elementActionWithType:customTitle:]): Moved and renamed.
(+[_WKElementAction elementActionWithType:]): Ditto.
(-[_WKElementAction _runActionWithElementInfo:view:]): Moved from WKActionSheet.mm.
* UIProcess/API/Cocoa/WKElementActionInternal.h: Added.
* UIProcess/ios/WKActionSheet.h: Removed declarations that were moved elsewhere.
* UIProcess/ios/WKActionSheet.mm: Removed code that was moved elsewhere.
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]):
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):
* WebKit2.xcodeproj/project.pbxproj: Added references to new files. Changed the Objective-C
class name check to allow _WK as a class name prefix.
2014-02-24 Simon Fraser <simon.fraser@apple.com>
Use RetainPtrs for two WKContentView data members
https://bugs.webkit.org/show_bug.cgi?id=129276
Reviewed by Benjamin Poulain.
The UITextInputTraits were leaked. Fix with RetainPtr goodness.
Rename the obscure _accessory to _formAccessoryView and
make it a RetainPtr.
Rearrange the data members of the WKContentView class extension
for better packing and readability.
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanupInteraction]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView _updateAccessory]):
(-[WKContentView textInputTraits]):
2014-02-24 Simon Fraser <simon.fraser@apple.com>
Remove WKInteractionView, move code into WKContentView
https://bugs.webkit.org/show_bug.cgi?id=129275
Reviewed by Benjamin Poulain.
WKInteractionView as an interim solution as WebKit2 on iOS was being
brought up, and should be removed.
Move its code into a category on WKContentView, mostly unchanged. The
WKContentView (WKInteraction) categroy now implements the various protocols
that WKInteractionView implemented.
WKContentView is not an API class, so no longer has WK_API_CLASS, and can
have implementation-related data members. WKContentViewInternal.h is removed.
WKContentView now exposes a WebPageProxy* rather than a WKPageRef.
Other changes: WKActionSheetAssistant no longer stores a WebPageProxy,
getting it from the WKContentView instead.
WKAutoCorrectionData and InteractionInformationAtPosition are stored via unique_ptr
to reduce class size, and avoid having to expose their details in the header.
* Configurations/WebKit2.xcconfig:
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView setAllowsBackForwardNavigationGestures:]):
(-[WKView pageRef]):
(-[WKView _pageExtendedBackgroundColor]):
(-[WKView _setBackgroundExtendsBeyondPage:]):
(-[WKView _backgroundExtendsBeyondPage]):
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/ios/WKActionSheet.h:
* UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet initWithView:]):
(+[WKElementAction customElementActionWithTitle:actionHandler:]):
(copyElement):
(saveImage):
(+[WKElementAction standardElementActionWithType:customTitle:]):
(-[WKElementAction runActionWithElementInfo:view:]):
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant initWithView:]):
(-[WKActionSheetAssistant dealloc]):
(-[WKActionSheetAssistant initialPresentationRectInHostViewForSheet]):
(-[WKActionSheetAssistant presentationRectInHostViewForSheet]):
(-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]):
(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):
(-[WKActionSheetAssistant cleanupSheet]):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::]):
(-[WKContentView dealloc]):
(-[WKContentView page]):
(-[WKContentView isAssistingNode]):
(-[WKContentView didFinishScrolling]):
(-[WKContentView willStartZoomOrScroll]):
(-[WKContentView willStartUserTriggeredScroll]):
(-[WKContentView willStartUserTriggeredZoom]):
(-[WKContentView didZoomToScale:]):
(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView _didCommitLayerTree:WebKit::]):
* UIProcess/ios/WKContentViewInteraction.h: Renamed from Source/WebKit2/UIProcess/ios/WKInteractionView.h.
* UIProcess/ios/WKContentViewInteraction.mm: Renamed from Source/WebKit2/UIProcess/ios/WKInteractionView.mm.
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView positionInformation]):
(-[WKContentView setInputDelegate:]):
(-[WKContentView inputDelegate]):
(-[WKContentView isEditable]):
(-[WKContentView canBecomeFirstResponder]):
(-[WKContentView resignFirstResponder]):
(-[WKContentView _webTouchEventsRecognized:]):
(inflateQuad):
(-[WKContentView _webTouchEvent:WebKit::preventsNativeGestures:]):
(-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
(-[WKContentView _cancelLongPressGestureRecognizer]):
(-[WKContentView _didScroll]):
(-[WKContentView _requiresKeyboardResetOnReload]):
(-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]):
(-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]):
(isSamePair):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _showImageSheet]):
(-[WKContentView _showLinkSheet]):
(-[WKContentView _showDataDetectorsSheet]):
(-[WKContentView _actionForLongPress]):
(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView _updatePositionInformation]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _cancelInteraction]):
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView pointIsInAssistedNode:]):
(-[WKContentView webSelectionRects]):
(-[WKContentView _highlightLongPressRecognized:]):
(-[WKContentView _longPressRecognized:]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _doubleTapRecognized:]):
(-[WKContentView _twoFingerDoubleTapRecognized:]):
(-[WKContentView _twoFingerPanRecognized:]):
(-[WKContentView _attemptClickAtLocation:]):
(-[WKContentView useSelectionAssistantWithMode:]):
(-[WKContentView clearSelection]):
(-[WKContentView _positionInformationDidChange:]):
(-[WKContentView _willStartScrollingOrZooming]):
(-[WKContentView _willStartUserTriggeredScrollingOrZooming]):
(-[WKContentView _didEndScrollingOrZooming]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView supportedPasteboardTypesForCurrentSelection]):
(-[WKContentView _addShortcut:]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView replace:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _resetShowingTextStyle:]):
(-[WKContentView _performAction:]):
(-[WKContentView copy:]):
(-[WKContentView cut:]):
(-[WKContentView paste:]):
(-[WKContentView select:]):
(-[WKContentView selectAll:]):
(-[WKContentView toggleBoldface:]):
(-[WKContentView toggleItalics:]):
(-[WKContentView toggleUnderline:]):
(-[WKContentView _showTextStyleOptions:]):
(-[WKContentView _showDictionary:]):
(-[WKContentView _define:]):
(toWKGestureType):
(toUIWKGestureType):
(toWKSelectionTouch):
(toUIWKSelectionTouch):
(toWKGestureRecognizerState):
(toUIGestureRecognizerState):
(toUIWKSelectionFlags):
(toWKHandlePosition):
(selectionChangedWithGesture):
(selectionChangedWithTouch):
(-[WKContentView _didUpdateBlockSelectionWithTouch:WebKit::withFlags:WebKit::growThreshold:shrinkThreshold:]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
(-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
(-[WKContentView autocorrectionData]):
(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView textFirstRect]):
(-[WKContentView textLastRect]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
(-[WKContentView accessoryDone]):
(-[WKContentView accessoryTab:]):
(-[WKContentView accessoryAutoFill]):
(-[WKContentView accessoryClear]):
(-[WKContentView _updateAccessory]):
(-[WKContentView textInRange:]):
(-[WKContentView replaceRange:withText:]):
(-[WKContentView selectedTextRange]):
(-[WKContentView caretRectForPosition:]):
(-[WKContentView selectionRectsForRange:]):
(-[WKContentView setSelectedTextRange:]):
(-[WKContentView hasMarkedText]):
(-[WKContentView markedText]):
(-[WKContentView markedTextRange]):
(-[WKContentView markedTextStyle]):
(-[WKContentView setMarkedTextStyle:]):
(-[WKContentView setMarkedText:selectedRange:]):
(-[WKContentView unmarkText]):
(-[WKContentView beginningOfDocument]):
(-[WKContentView endOfDocument]):
(-[WKContentView textRangeFromPosition:toPosition:]):
(-[WKContentView positionFromPosition:offset:]):
(-[WKContentView positionFromPosition:inDirection:offset:]):
(-[WKContentView comparePosition:toPosition:]):
(-[WKContentView offsetFromPosition:toPosition:]):
(-[WKContentView tokenizer]):
(-[WKContentView positionWithinRange:farthestInDirection:]):
(-[WKContentView characterRangeByExtendingPosition:inDirection:]):
(-[WKContentView baseWritingDirectionForPosition:inDirection:]):
(-[WKContentView setBaseWritingDirection:forRange:]):
(-[WKContentView firstRectForRange:]):
(-[WKContentView closestPositionToPoint:]):
(-[WKContentView closestPositionToPoint:withinRange:]):
(-[WKContentView characterRangeAtPoint:]):
(-[WKContentView deleteBackward]):
(-[WKContentView insertText:]):
(-[WKContentView hasText]):
(-[WKContentView textInputTraits]):
(-[WKContentView interactionAssistant]):
(-[WKContentView webSelectionAssistant]):
(-[WKContentView selectionRange]):
(-[WKContentView rectForNSRange:]):
(-[WKContentView _markedTextNSRange]):
(-[WKContentView selectedDOMRange]):
(-[WKContentView setSelectedDOMRange:affinityDownstream:]):
(-[WKContentView replaceRangeWithTextWithoutClosingTyping:replacementText:]):
(-[WKContentView rectContainingCaretSelection]):
(-[WKContentView requiresKeyEvents]):
(-[WKContentView handleKeyWebEvent:]):
(-[WKContentView _interpretKeyEvent:isCharEvent:]):
(-[WKContentView setBottomBufferHeight:]):
(-[WKContentView automaticallySelectedOverlay]):
(-[WKContentView selectionGranularity]):
(-[WKContentView insertDictationResult:withCorrectionIdentifier:]):
(-[WKContentView metadataDictionariesForDictationResults]):
(-[WKContentView previousUnperturbedDictationResultBoundaryFromPosition:]):
(-[WKContentView nextUnperturbedDictationResultBoundaryFromPosition:]):
(-[WKContentView moveBackward:]):
(-[WKContentView moveForward:]):
(-[WKContentView characterBeforeCaretSelection]):
(-[WKContentView wordContainingCaretSelection]):
(-[WKContentView wordRangeContainingCaretSelection]):
(-[WKContentView setMarkedText:]):
(-[WKContentView hasContent]):
(-[WKContentView selectAll]):
(-[WKContentView textColorForCaretSelection]):
(-[WKContentView fontForCaretSelection]):
(-[WKContentView hasSelection]):
(-[WKContentView isPosition:atBoundary:inDirection:]):
(-[WKContentView positionFromPosition:toBoundary:inDirection:]):
(-[WKContentView isPosition:withinTextUnit:inDirection:]):
(-[WKContentView rangeEnclosingPosition:withGranularity:inDirection:]):
(-[WKContentView takeTraitsFrom:]):
(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _stopAssistingKeyboard]):
(-[WKContentView _startAssistingNode]):
(-[WKContentView _stopAssistingNode]):
(-[WKContentView _selectionChanged]):
(-[WKContentView shouldIgnoreWebTouch]):
(-[WKContentView isAnyTouchOverActiveArea:]):
(-[WKTextRange _isCaret]):
(-[WKTextRange _isRanged]):
(+[WKTextRange textRangeWithState:isRange:isEditable:startRect:endRect:selectionRects:selectedTextLength:]):
(-[WKTextRange dealloc]):
(-[WKTextRange description]):
(-[WKTextRange start]):
(-[WKTextRange end]):
(-[WKTextRange isEmpty]):
(-[WKTextRange isEqual:]):
(+[WKTextPosition textPositionWithRect:]):
(-[WKTextPosition isEqual:]):
(-[WKTextPosition description]):
(-[WKTextSelectionRect initWithWebRect:]):
(-[WKTextSelectionRect dealloc]):
(+[WKTextSelectionRect textSelectionRectsWithWebRects:]):
(-[WKTextSelectionRect rect]):
(-[WKTextSelectionRect writingDirection]):
(-[WKTextSelectionRect range]):
(-[WKTextSelectionRect containsStart]):
(-[WKTextSelectionRect containsEnd]):
(-[WKTextSelectionRect isVertical]):
(+[WKAutocorrectionRects autocorrectionRectsWithRects:lastRect:]):
(+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
(-[WKAutocorrectionContext dealloc]):
* UIProcess/ios/WKContentViewInternal.h: Removed.
* WebKit2.xcodeproj/project.pbxproj:
2014-02-24 Anders Carlsson <andersca@apple.com>
WKProcessPool should use secondary processes + network process
https://bugs.webkit.org/show_bug.cgi?id=129282
Reviewed by Simon Fraser.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool initWithConfiguration:]):
2014-02-24 Jeremy Jones <jeremyj@apple.com>
WK2 AVKit fullscreen doesn't display video.
https://bugs.webkit.org/show_bug.cgi?id=128564
Reviewed by Simon Fraser.
* Shared/mac/RemoteLayerTreeTransaction.h:
Add a property to track video layer pending fullscreen.
(WebKit::RemoteLayerTreeTransaction::isVideoLayerIDPendingFullscreen):
(WebKit::RemoteLayerTreeTransaction::addVideoLayerIDPendingFullscreen):
Add a property to track video layer pending fullscreen.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
Encode and decode m_videoLayerIDsPendingFullscreen.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
Let WebVideoFullscreenManagerProxy see the RemoteLayerTreeTransaction.
* UIProcess/ios/WebVideoFullscreenManagerProxy.cpp:
(WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
Look for video layer pending fullscreen on the transaction to initiate
fullscreen.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
Start looking for the video layer pending fullscreen in the transaction.
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreen):
Override to prevent fullscreen from happening before the layer
is pending fullscreen.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
Pass a more specific videoLayerID in SetVideoLayerID,
i.e. WebCore::GraphicsLayer::PlatformLayerID.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
Move webPage specific transaction building here, including,
giving WebVideoFullscreenManager a chance to modify the transaction.
* WebProcess/WebPage/WebPage.h:
Add willCommitLayerTree();
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
(PlatformCALayerRemoteCustom::~PlatformCALayerRemoteCustom):
Make and break the connection from CALayer to PlatformCALayerRemoteCustom,
the same way it is done for PlatformCALayerMac.
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
Move WebPage specific transaction building into WebPage::willCommitLayerTree.
* WebProcess/ios/WebVideoFullscreenManager.cpp:
(WebKit::WebVideoFullscreenManager::willCommitLayerTree):
addVideoLayerIDPendingFullscreen on RemoteLayerTreeTransaction when needed.
(WebKit::WebVideoFullscreenManager::setVideoLayer):
Pass along the video layerID.
* WebProcess/ios/WebVideoFullscreenManager.h:
Add willCommitLayerTree() and remove setVideoLayerID().
Add a member to retain the unparented PlatformCALayer.
2014-02-24 Martin Hock <mhock@apple.com>
Create SessionID value-style class for session IDs.
https://bugs.webkit.org/show_bug.cgi?id=129141
The below changes deal solely with mechanical changes to use the SessionID value class instead of uint64_t except where noted.
Reviewed by Brady Eidson.
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::storageSession):
(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::deleteCookie):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::ensurePrivateBrowsingSession):
(WebKit::NetworkProcess::destroyPrivateBrowsingSession):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/RemoteNetworkingContext.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
* NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
* Shared/Network/NetworkResourceLoadParameters.h:
* Shared/SessionTracker.cpp:
(WebKit::staticSessionMap):
(WebKit::storageSessionToID):
(WebKit::SessionTracker::sessionMap):
(WebKit::SessionTracker::session):
(WebKit::SessionTracker::sessionID):
(WebKit::SessionTracker::setSession):
(WebKit::SessionTracker::destroySession):
* Shared/SessionTracker.h: Move code to SessionID class.
* Shared/WebCoreArgumentCoders.cpp: Add encode and decode for SessionID.
(IPC::ArgumentCoder<SessionID>::encode):
(IPC::ArgumentCoder<SessionID>::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/CookieStorageShim.mm:
(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):
* UIProcess/APISession.cpp:
(API::generateID):
(API::Session::defaultSession):
(API::Session::legacyPrivateSession):
(API::Session::Session):
(API::Session::isEphemeral):
(API::Session::getID):
* UIProcess/APISession.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebContext::createNewWebProcess):
* UIProcess/WebContext.h:
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::sessionID):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
* WebProcess/WebPage/WebPage.cpp: Move sessionID to Page to allow WebCore to access it.
(WebKit::WebPage::WebPage):
(WebKit::WebPage::sessionID):
(WebKit::WebPage::isUsingEphemeralSession):
(WebKit::WebPage::setSessionID):
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensurePrivateBrowsingSession):
(WebKit::WebProcess::destroyPrivateBrowsingSession):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
2014-02-24 Simon Fraser <simon.fraser@apple.com>
Remove PDFViewController.*, which is unused
https://bugs.webkit.org/show_bug.cgi?id=129270
Reviewed by Tim Horton.
* UIProcess/mac/PDFViewController.h: Removed.
* UIProcess/mac/PDFViewController.mm: Removed.
2014-02-24 Anders Carlsson <andersca@apple.com>
Rename WKProcessClass to WKProcessPool
https://bugs.webkit.org/show_bug.cgi?id=129268
Reviewed by Dan Bernstein.
Stage this rename by adding back WKProcessClass and WKProcessClassConfiguration as subclasses of the renamed classes.
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* UIProcess/API/Cocoa/WKProcessClass.h:
* UIProcess/API/Cocoa/WKProcessClass.mm:
* UIProcess/API/Cocoa/WKProcessClassConfiguration.h:
* UIProcess/API/Cocoa/WKProcessClassConfiguration.mm:
* UIProcess/API/Cocoa/WKProcessClassConfigurationPrivate.h:
* UIProcess/API/Cocoa/WKProcessClassPrivate.h:
* UIProcess/API/Cocoa/WKProcessPool.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.h.
* UIProcess/API/Cocoa/WKProcessPool.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.mm.
(-[WKProcessPool init]):
(-[WKProcessPool initWithConfiguration:]):
(-[WKProcessPool dealloc]):
(-[WKProcessPool description]):
(-[WKProcessPool configuration]):
(-[WKProcessPool API::]):
(-[WKProcessPool _setAllowsSpecificHTTPSCertificate:forHost:]):
* UIProcess/API/Cocoa/WKProcessPoolConfiguration.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfiguration.h.
* UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfiguration.mm.
(-[WKProcessPoolConfiguration _injectedBundleURL]):
(-[WKProcessPoolConfiguration _setInjectedBundleURL:]):
(-[WKProcessPoolConfiguration description]):
(-[WKProcessPoolConfiguration copyWithZone:]):
* UIProcess/API/Cocoa/WKProcessPoolConfigurationPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfigurationPrivate.h.
* UIProcess/API/Cocoa/WKProcessPoolInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassInternal.h.
(WebKit::wrapper):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassPrivate.h.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration description]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration processPool]):
(-[WKWebViewConfiguration setProcessPool:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationToBeRemoved.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassPrivate.h.
(-[WKWebViewConfiguration setProcessClass:]):
(-[WKWebViewConfiguration processClass]):
* UIProcess/API/mac/WKView.mm:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]):
* WebKit2.xcodeproj/project.pbxproj:
2014-02-24 Simon Fraser <simon.fraser@apple.com>
Move non-API files out of WebKit2/UIProcess/API/mac
https://bugs.webkit.org/show_bug.cgi?id=129267
Reviewed by Anders Carlsson.
* UIProcess/mac/FindIndicatorWindow.h: Renamed from Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h.
* UIProcess/mac/FindIndicatorWindow.mm: Renamed from Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.mm.
* UIProcess/mac/PDFViewController.h: Renamed from Source/WebKit2/UIProcess/API/mac/PDFViewController.h.
* UIProcess/mac/PDFViewController.mm: Renamed from Source/WebKit2/UIProcess/API/mac/PDFViewController.mm.
* UIProcess/mac/WKPrintingView.h: Renamed from Source/WebKit2/UIProcess/API/mac/WKPrintingView.h.
* UIProcess/mac/WKPrintingView.mm: Renamed from Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm.
* UIProcess/mac/WKTextInputWindowController.h: Renamed from Source/WebKit2/UIProcess/API/mac/WKTextInputWindowController.h.
* UIProcess/mac/WKTextInputWindowController.mm: Renamed from Source/WebKit2/UIProcess/API/mac/WKTextInputWindowController.mm.
* WebKit2.xcodeproj/project.pbxproj:
2014-02-24 Simon Fraser <simon.fraser@apple.com>
Move non-API files in the API/ios directory out to UIProcess/ios
https://bugs.webkit.org/show_bug.cgi?id=129264
Reviewed by Anders Carlsson.
* UIProcess/ios/PageClientImplIOS.h: Renamed from Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h.
* UIProcess/ios/PageClientImplIOS.mm: Renamed from Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.mm.
* UIProcess/ios/WKActionSheet.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKActionSheet.h.
* UIProcess/ios/WKActionSheet.mm: Renamed from Source/WebKit2/UIProcess/API/ios/WKActionSheet.mm.
* UIProcess/ios/WKContentViewInternal.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKContentViewInternal.h.
* UIProcess/ios/WKGeolocationProviderIOS.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKGeolocationProviderIOS.h.
* UIProcess/ios/WKGeolocationProviderIOS.mm: Renamed from Source/WebKit2/UIProcess/API/ios/WKGeolocationProviderIOS.mm.
* UIProcess/ios/WKInteractionView.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKInteractionView.h.
* UIProcess/ios/WKInteractionView.mm: Renamed from Source/WebKit2/UIProcess/API/ios/WKInteractionView.mm.
* UIProcess/ios/WKScrollView.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKScrollView.h.
* UIProcess/ios/WKScrollView.mm: Renamed from Source/WebKit2/UIProcess/API/ios/WKScrollView.mm.
* WebKit2.xcodeproj/project.pbxproj:
2014-02-24 Simon Fraser <simon.fraser@apple.com>
Rename PageClientImplIOS::m_view to m_contentView
https://bugs.webkit.org/show_bug.cgi?id=129124
Reviewed by Benjamin Poulain.
Simple rename of m_view to m_contentView in preparation for
also holding onto the WKView.
* UIProcess/API/ios/PageClientImplIOS.h:
* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::PageClientImpl):
(WebKit::PageClientImpl::createDrawingAreaProxy):
(WebKit::PageClientImpl::viewSize):
(WebKit::PageClientImpl::isViewInWindow):
(WebKit::PageClientImpl::processDidExit):
(WebKit::PageClientImpl::didRelaunchProcess):
(WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
(WebKit::PageClientImpl::interpretKeyEvent):
(WebKit::PageClientImpl::positionInformationDidChange):
(WebKit::PageClientImpl::selectionDidChange):
(WebKit::PageClientImpl::screenToRootView):
(WebKit::PageClientImpl::rootViewToScreen):
(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer):
(WebKit::PageClientImpl::takeViewSnapshot):
(WebKit::PageClientImpl::didGetTapHighlightGeometries):
(WebKit::PageClientImpl::didCommitLayerTree):
(WebKit::PageClientImpl::startAssistingNode):
(WebKit::PageClientImpl::stopAssistingNode):
2014-02-24 Enrique Ocaña González <eocanha@igalia.com>
REGRESSION(r164438): [GTK] Tests /webkit2/WebKitWebView/tls-errors-policy and /webkit2/WebKitWebContext/uri-scheme fail
https://bugs.webkit.org/show_bug.cgi?id=129252
Reviewed by Carlos Garcia Campos.
* UIProcess/API/gtk/WebKitPrivate.cpp: Manage error values generated by the user application and not present in WebCore
(toWebKitError):
(toWebCoreError):
2014-02-24 Alexey Proskuryakov <ap@apple.com>
<rdar://problem/16059894> Update AppleConnect sandbox profile for XPC process names.
Patch by Ivan Krstić, reviewed and landed by me.
* Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
2014-02-24 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
Code cleanup: remove leftover ENABLE(WORKERS) macros and support.
https://bugs.webkit.org/show_bug.cgi?id=129255
Reviewed by Csaba Osztrogonác.
ENABLE_WORKERS macro was removed in r159679.
Support is now also removed from xcconfig files.
* Configurations/FeatureDefines.xcconfig:
2014-02-24 Iago Toral Quiroga <itoral@igalia.com>
[GTK] Wrong active context when destroying GL objects.
https://bugs.webkit.org/show_bug.cgi?id=129244
Reviewed by Martin Robinson.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::invalidate): make context current before destroying GL objects.
2014-02-24 Koop Mast <kwm@FreeBSD.org>
Remove unused error.h header.
https://bugs.webkit.org/show_bug.cgi?id=126774
Reviewed by Anders Carlsson.
This header doesn't exists on FreeBSD. According to
https://www.gnu.org/software/gnulib/manual/html_node/error_002eh.html
the function that this header implements are not present in the file.
So there isn't any need for this header.
* NetworkProcess/unix/NetworkProcessMainUnix.cpp:
2014-02-24 David Kilzer <ddkilzer@apple.com>
Remove redundant setting in FeatureDefines.xcconfig
* Configurations/FeatureDefines.xcconfig:
2014-02-24 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remove unneeded method webkitWebViewBaseRequestExitFullScreen
https://bugs.webkit.org/show_bug.cgi?id=129245
Reviewed by Sergio Villar Senin.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseKeyPressEvent): Call FullscreenManager::requestExitFullScreen() directly.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
2014-02-23 Dan Bernstein <mitz@apple.com>
<rdar://problem/16144508> [iOS] Some definitions of INSTALL_PATH don’t account for INSTALL_PATH_PREFIX
https://bugs.webkit.org/show_bug.cgi?id=129241
Reviewed by Mark Rowe.
* Configurations/Base.xcconfig: Define INSTALL_PATH here in terms of INSTALL_PATH_ACTUAL.
* Configurations/BaseLegacyProcess.xcconfig: Define only INSTALL_PATH_ACTUAL.
* Configurations/BaseTarget.xcconfig: Simplify the definition of
NORMAL_WEBKIT2_FRAMEWORKS_DIR, now that it shouldn’t include SDKROOT for the Simulator.
* Configurations/BaseXPCService.xcconfig: Define only INSTALL_PATH_ACTUAL.
* Configurations/WebKit2.xcconfig: Ditto.
2014-02-23 Sam Weinig <sam@webkit.org>
Update FeatureDefines.xcconfig
Rubber-stamped by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig:
2014-02-23 Sam Weinig <sam@webkit.org>
[WebKit2] Add C-SPI to enable/disable telephone number detection
https://bugs.webkit.org/show_bug.cgi?id=129239
Reviewed by Dean Jackson.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetTelephoneNumberParsingEnabled):
(WKPreferencesGetTelephoneNumberParsingEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
2014-02-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Change a url parameter type with URL in NavigatorContentUtils
https://bugs.webkit.org/show_bug.cgi?id=129202
Reviewed by Sam Weinig.
It would be good if we use *URL* for url parameters instead of using String.
Merge from blink. https://src.chromium.org/viewvc/blink?view=rev&revision=165458.
* WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h:
(WebKit::WebNavigatorContentUtilsClient::isProtocolHandlerRegistered):
(WebKit::WebNavigatorContentUtilsClient::unregisterProtocolHandler):
2014-02-23 Sam Weinig <sam@webkit.org>
Move telephone number detection behind its own ENABLE macro
https://bugs.webkit.org/show_bug.cgi?id=129236
Reviewed by Dean Jackson.
* Configurations/FeatureDefines.xcconfig:
Add ENABLE_TELEPHONE_NUMBER_DETECTION.
2014-02-23 Diego Pino García <dpino@igalia.com>
[GTK] Fix build after Web Inspector code reorganization (r164543)
https://bugs.webkit.org/show_bug.cgi?id=129231
Reviewed by Dean Jackson.
* PlatformGTK.cmake:
Modify paths to Web Inspector code.
2014-02-22 Joseph Pecoraro <pecoraro@apple.com>
Remove some unreachable code (-Wunreachable-code)
https://bugs.webkit.org/show_bug.cgi?id=129220
Reviewed by Eric Carlson.
* WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
(WebKit::toAPI):
2014-02-22 Dan Bernstein <mitz@apple.com>
[Cocoa] WKUIDelegate.h is a project header
https://bugs.webkit.org/show_bug.cgi?id=129215
Reviewed by Anders Carlsson.
* WebKit2.xcodeproj/project.pbxproj: Make it a public header.
2014-02-22 Dan Bernstein <mitz@apple.com>
<rdar://problem/12500358> [Cocoa] Development variants of XPC services should not be installed in WebKit2.framework/XPCServices
https://bugs.webkit.org/show_bug.cgi?id=129197
Reviewed by Sam Weinig.
* Configurations/BaseXPCService.xcconfig: Made INSTALL_PATH vary based on
WK_XPC_SERVICE_VARIANT. For the Development variant, use an install path outside the
framework. Note that engineering builds using the build action continue to have the
Development variants copied into the framework by a script build phase.
* Configurations/DatabaseService.Development.xcconfig: Set WK_XPC_SERVICE_VARIANT.
* Configurations/DatabaseService.xcconfig: Ditto.
* Configurations/NetworkService.Development.xcconfig: Ditto.
* Configurations/NetworkService.xcconfig: Ditto.
* Configurations/PluginService.32.xcconfig: Ditto.
* Configurations/PluginService.64.xcconfig: Ditto.
* Configurations/PluginService.Development.xcconfig: Ditto.
* Configurations/WebContentService.Development.xcconfig: Ditto.
* Configurations/WebContentService.xcconfig: Ditto.
2014-02-21 Brent Fulgham <bfulgham@apple.com>
Extend media support for WebVTT sources
https://bugs.webkit.org/show_bug.cgi?id=129156
Reviewed by Eric Carlson.
* Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS
2014-02-21 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Keyboard appears every time a link is tapped after searching Google
<rdar://problem/16072563>.
Reviewed by Benjamin Poulain.
We need to stop assisting the node if we have
navigated to a different page.
* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView _didCommitLoadForMainFrame]):
2014-02-21 Dan Bernstein <mitz@apple.com>
Made WKWebView implement all WKContentViewDelegate methods.
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView takeViewSnapshotForContentView:]): Moved from WKViewIOS.mm.
* UIProcess/API/ios/WKContentView.h: Made all protocol methods required.
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]): Removed code
to set self as the delegate on the content view.
2014-02-21 Sam Weinig <sam@webkit.org>
<rdar://problem/16073882> Please add _AbandonCoalition key to plugin XPC service Info.plist
Reviewed by Anders Carlsson.
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
2014-02-21 Jeffrey Pfau <jpfau@apple.com>
[Mac] Cache callbacks for cache partitioning may be passed null
https://bugs.webkit.org/show_bug.cgi?id=129175
Reviewed by Brady Eidson.
* WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp:
(WebKit::WebResourceCacheManager::cfURLCacheHostNamesWithCallback):
2014-02-21 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Update the visible content rects on zoom
https://bugs.webkit.org/show_bug.cgi?id=129174
Reviewed by Simon Fraser.
Generalize _updateVisibleContentRects to also act during the zoom and not only at the end.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewDidZoom:]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView scrollViewDidZoom:]):
2014-02-21 Benjamin Poulain <benjamin@webkit.org>
jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument
https://bugs.webkit.org/show_bug.cgi?id=128893
Reviewed by Darin Adler.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::pageNumberForElementById): Remove the explicit conversion to use the right overload.
2014-02-21 Enrica Casucci <enrica@apple.com>
Support WebSelections in WK2 on iOS.
https://bugs.webkit.org/show_bug.cgi?id=127015
<rdar://problem/15211964>
Reviewed by Benjamin Poulain.
This is the remaining work on block selections for iOS in WK2.
Once a block selection has been created with a long press gesture
on a selectable area, we can interact with it by touching the four
handles at the top, right, bottom and left side of the selection box.
Expanding or shrinking a block selection requires finding the next/previous
block in the direction of the movement, depending on the handle we
are interacting with.
Every time a new block is selected, we compute the thresholds required
to trigger another block change. The thresholds are sent back to the
UIProcess that will use this information to decide when to activate
the new selection, either bigger or smaller.
This patch also fixes a bug in selectWithTwoTouches where the points
were not mapped to the active frame.
* Shared/ios/WKGestureTypes.h:
* UIProcess/API/ios/PageClientImplIOS.h:
* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didUpdateBlockSelectionWithTouches):
* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView _didUpdateBlockSelectionWithTouches:withFlags:growThreshold:shrinkThreshold:]):
* UIProcess/API/ios/WKContentViewInternal.h:
* UIProcess/API/ios/WKInteractionView.h:
* UIProcess/API/ios/WKInteractionView.mm:
(-[WKInteractionView hasSelectablePositionAtPoint:]):
(-[WKInteractionView clearSelection]):
(toWKHandlePosition):
(-[WKInteractionView _didUpdateBlockSelectionWithTouches:WebKit::withFlags:WebKit::growThreshold:shrinkThreshold:]):
(-[WKInteractionView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateBlockSelectionWithTouches):
(WebKit::WebPageProxy::didUpdateBlockSelectionWithTouches):
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::rangeForBlockAtPoint):
(WebKit::WebPage::selectWithGesture):
(WebKit::distanceBetweenRectsForPosition):
(WebKit::rectsEssentiallyTheSame):
(WebKit::containsRange):
(WebKit::unionDOMRanges):
(WebKit::computeEdgeCenter):
(WebKit::WebPage::expandedRangeFromHandle):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
(WebKit::shouldExpand):
(WebKit::WebPage::changeBlockSelection):
(WebKit::WebPage::updateBlockSelectionWithTouches):
(WebKit::WebPage::clearSelection):
(WebKit::WebPage::selectWithTwoTouches):
(WebKit::WebPage::getPositionInformation):
2014-02-21 Anders Carlsson <andersca@apple.com>
Make sure to invoke the completion handler for JS alerts
https://bugs.webkit.org/show_bug.cgi?id=129158
Reviewed by Alexey Proskuryakov.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
2014-02-20 Zalan Bujtas <zalan@apple.com>
Remove redundant deviceScaleFactor() functions and make callers use Document::deviceScaleFactor() when accessible.
https://bugs.webkit.org/show_bug.cgi?id=129137
Reviewed by Simon Fraser.
No change in behavior.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::getFindIndicatorBitmapAndRect):
2014-02-20 Benjamin Poulain <bpoulain@apple.com>
Add a missing piece of r164469
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewWillBeginDragging:]):
I forgot to duplicate the change from WKViewIOS in r164469.
2014-02-20 Benjamin Poulain <bpoulain@apple.com>
WKInteractionView always blocks the main thread when sending touch events
https://bugs.webkit.org/show_bug.cgi?id=129059
Reviewed by Enrica Casucci.
Add the asynchronous dispatching to WebKit2.
* Shared/NativeWebTouchEvent.h:
(WebKit::NativeWebTouchEvent::uniqueId):
* Shared/ios/NativeWebTouchEventIOS.mm:
(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::doneWithTouchEvent):
* UIProcess/API/ios/WKContentView.h:
* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView willStartUserTriggeredScroll]):
(-[WKContentView willStartUserTriggeredZoom]):
(-[WKContentView _webTouchEvent:WebKit::preventsNativeGestures:]):
* UIProcess/API/ios/WKContentViewInternal.h:
* UIProcess/API/ios/WKInteractionView.h:
* UIProcess/API/ios/WKInteractionView.mm:
(-[WKInteractionView _webTouchEventsRecognized:]):
(-[WKInteractionView _webTouchEvent:WebKit::preventsNativeGestures:]):
(-[WKInteractionView _willStartUserTriggeredScrollingOrZooming]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView scrollViewWillBeginDragging:]):
* WebKit2.xcodeproj/project.pbxproj:
2014-02-20 Benjamin Poulain <bpoulain@apple.com>
Start fixing the view states driven by the WKScrollView
https://bugs.webkit.org/show_bug.cgi?id=129140
Reviewed by Tim Horton and Simon Fraser.
WKScrollView creates a "window" over WKContentView with an area that is exposed,
an area that is unobcured and with a certain scale.
Instead of having 3 loosely related paths for updating WKContentView
when the content "window" change, everything is consolidated behind the
single API -[WKContentView didUpdateVisibleRect:unobscuredRect:scale:].
This patch only fixes the content updates from the UI process side to keep things simple.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewDidEndDragging:willDecelerate:]):
(-[WKWebView scrollViewDidEndDecelerating:]):
(-[WKWebView scrollViewDidScrollToTop:]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateContentWindow]):
(-[WKWebView _setObscuredInsets:]):
* UIProcess/API/ios/WKContentView.h:
* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:]):
(-[WKContentView _updateFixedPositionRect]):
(-[WKContentView didFinishScrolling]):
(-[WKContentView didZoomToScale:]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView contentView:didCommitLayerTree:]):
(-[WKView _didFinishScrolling]):
(-[WKView scrollViewDidEndDragging:willDecelerate:]):
(-[WKView scrollViewDidEndDecelerating:]):
(-[WKView scrollViewDidScrollToTop:]):
(-[WKView scrollViewDidScroll:]):
(-[WKView scrollViewDidEndZooming:withView:atScale:]):
Scrolling is modified to take into account the view position and the obcured content.
Instead of driving the scrolling position from the UIScrollView delegate callbacks,
we use changes in unobscured rect to find changes in "content visible scroll position".
WebPageProxy::didFinishScrolling() is removed. All the scrollOffset updates now go through
the ScrollingCoordinator.
(-[WKView _frameOrBoundsChanged]):
(-[WKView _updateContentWindow]):
(-[WKView _setObscuredInsets:]):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::unobscuredContentRect):
(WebKit::WebPageProxy::setUnobscuredContentRect):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
2014-02-20 Tim Horton <timothy_horton@apple.com>
Fix a build warning by moving some WKWebView methods from the private category to WKWebView itself.
Reviewed by Anders Carlsson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView setAllowsBackForwardNavigationGestures:]):
(-[WKWebView allowsBackForwardNavigationGestures]):
2014-02-20 Enrica Casucci <enrica@apple.com>
ASSERT on touches callbacks after r164409 on iOS.
https://bugs.webkit.org/show_bug.cgi?id=129135
Reviewed by Alexey Proskuryakov.
The change used incorrecly true and false in TouchesCallbacks and
ImageCallback. It also reintroduced isMainThread() which doesn't work
for iOS.
* UIProcess/GenericCallback.h:
(WebKit::CallbackBase::generateCallbackID):
(WebKit::ImageCallback::performCallbackWithReturnValue):
(WebKit::ImageCallback::invalidate):
* UIProcess/WebPageProxy.h:
(WebKit::TouchesCallback::performCallbackWithReturnValue):
(WebKit::TouchesCallback::invalidate):
2014-02-20 Anders Carlsson <andersca@apple.com>
We need something like WKPageUIClient in the Obj-C API
https://bugs.webkit.org/show_bug.cgi?id=129123
<rdar://problem/15338439>
Reviewed by Sam Weinig.
* UIProcess/API/APIUIClient.h:
* UIProcess/API/Cocoa/WKUIDelegate.h: Added.
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView UIDelegate]):
(-[WKWebView setUIDelegate:]):
* UIProcess/Cocoa/UIClient.h: Added.
* UIProcess/Cocoa/UIClient.mm: Added.
(WebKit::UIClient::UIClient):
(WebKit::UIClient::~UIClient):
(WebKit::UIClient::delegate):
(WebKit::UIClient::setDelegate):
(WebKit::UIClient::runJavaScriptAlert):
(WebKit::UIClient::runJavaScriptConfirm):
(WebKit::UIClient::runJavaScriptPrompt):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::uiClient):
* WebKit2.xcodeproj/project.pbxproj:
2014-02-20 Brady Eidson <beidson@apple.com>
Add very basic image control rendering
https://bugs.webkit.org/show_bug.cgi?id=129080
Reviewed by Tim Horton.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Expose the
imageControlsEnabled setting to WKTR.
2014-02-20 Tim Horton <timothy_horton@apple.com>
Add magnification and swiping properties to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=129117
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Move allowsBackForwardNavigationGestures out of a Mac-only block.
* UIProcess/API/Cocoa/WKWebView.h:
Add allowsBackForwardNavigationGestures to WKWebView for both platforms.
Add magnification properties to WKWebView for Mac.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView contentView:didCommitLayerTree:WebKit::]):
(-[WKWebView setAllowsBackForwardNavigationGestures:]):
(-[WKWebView allowsBackForwardNavigationGestures]):
(-[WKWebView setAllowsMagnification:]):
(-[WKWebView allowsMagnification]):
(-[WKWebView setMagnification:]):
(-[WKWebView magnification]):
(-[WKWebView setMagnification:centeredAtPoint:]):
For iOS, copy implementations from WKViewIOS.
For Mac, forward to the inner WKView.
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView setAllowsBackForwardNavigationGestures:]):
Fix the logic to tear down the ViewGestureController.
* UIProcess/API/mac/WKView.mm:
(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
(-[WKView magnification]):
Use CG types for API.
== Rolled over to ChangeLog-2014-02-20 ==