2012-02-03 Anders Carlsson WebKit2 should dispatch wheel events to the new ScrollingTree class https://bugs.webkit.org/show_bug.cgi?id=77795 Reviewed by Andreas Kling. Replace all uses of ScrollingCoordinator with ScrollingTree instead. Also, don't try to handle gesture events on the scrolling thread anymore; we don't need to to that right now. * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::addScrollingTreeForPage): (WebKit::EventDispatcher::removeScrollingTreeForPage): (WebKit::EventDispatcher::wheelEvent): (WebKit::EventDispatcher::gestureEvent): * WebProcess/WebPage/EventDispatcher.h: (WebCore): (EventDispatcher): * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): (WebKit::TiledCoreAnimationDrawingArea::~TiledCoreAnimationDrawingArea): 2012-02-03 Alexey Proskuryakov [WK2 Mac] No need to allow access to input methods or keyboard layouts https://bugs.webkit.org/show_bug.cgi?id=77775 Reviewed by Dan Bernstein. * WebProcess/com.apple.WebProcess.sb: These rules were likely only necessary in early days of WebKit2. If there are cases when this happens, that's likely wrong, and we need to know about that. 2012-02-03 Alexey Proskuryakov [WK2] Use properly quoted string literals https://bugs.webkit.org/show_bug.cgi?id=77583 Reviewed by Darin Adler. Also added some FIXMEs. * WebProcess/com.apple.WebProcess.sb: 2012-02-03 Brady Eidson and https://bugs.webkit.org/show_bug.cgi?id=77766 Need a WK2 API to filter which subframes go into WebArchives as they are created. Reviewed by Darin Adler. Add a new WKBundleFrame API that takes a filter callback object to allow or reject subframes from a WebArchive: * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: (WKBundleFrameCopyWebArchive): (WKBundleFrameCopyWebArchiveFilteringSubframes): * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: Implement the above API by calling through to WebCore: * WebProcess/WebPage/WebFrame.cpp: (WebFrameFilter): (WebKit::WebFrameFilter::WebFrameFilter): (WebKit::WebFrameFilter::shouldIncludeSubframe): (WebKit::WebFrame::webArchiveData): * WebProcess/WebPage/WebFrame.h: (WebFrame): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::getWebArchiveOfFrame): 2012-02-03 Alexey Proskuryakov [Mac WK2] Use a minimally invasive way to fake plug-in process name https://bugs.webkit.org/show_bug.cgi?id=77682 Reviewed by Darin Adler. * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::netscapePluginModule): Only change the name as it's seen from within the process. * Shared/Plugins/PluginQuirks.h: Fixed a typo. 2012-02-03 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=77691 Fix PlatformScreen layering violation and PlatformScreenMac's incorrect use of device scale Reviewed by Andy Estes. toUserSpace() and toDeviceSpace() don't need to take device scale. * UIProcess/API/mac/WKView.mm: (-[WKView _convertToDeviceSpace:]): (-[WKView _convertToUserSpace:]): 2012-02-03 No'am Rosenthal [Qt][Texmap] Refactor TextureMapper API to use ImageBuffers when possible. https://bugs.webkit.org/show_bug.cgi?id=77148 Reviewed by Martin Robinson. Use TextureMapper::create instead of creating TextureMapperGL/TextureMapperQt directly. Remove calls to unused API. * UIProcess/qt/LayerTreeHostProxyQt.cpp: (WebKit::LayerTreeHostProxy::paintToCurrentGLContext): (WebKit::LayerTreeHostProxy::paintToGraphicsContext): (WebKit::LayerTreeHostProxy::createImage): (WebKit::LayerTreeHostProxy::ensureRootLayer): 2012-02-03 Jocelyn Turcotte [Qt] Split QQuickWebViewPrivate in two classes, for desktop and touch behavior. https://bugs.webkit.org/show_bug.cgi?id=77632 Reviewed by Kenneth Rohde Christiansen. Replace the runtime property setting the desktop behavior on each instance by a static boolean controlling the behavior used by future created WebViews. * UIProcess/API/qt/qquickwebpage.cpp: Let only setContentsSize control the size of the drawing area instead of deferring it until geometryChanged is called. (QQuickWebPagePrivate::QQuickWebPagePrivate): * UIProcess/API/qt/qquickwebpage_p.h: * UIProcess/API/qt/qquickwebpage_p_p.h: (QQuickWebPagePrivate): * UIProcess/API/qt/qquickwebview.cpp: (createPrivateObject): (QQuickWebViewPrivate::QQuickWebViewPrivate): (QQuickWebViewPrivate::~QQuickWebViewPrivate): (QQuickWebViewPrivate::initialize): (QQuickWebViewPrivate::processDidCrash): (QQuickWebViewLegacyPrivate::QQuickWebViewLegacyPrivate): (QQuickWebViewLegacyPrivate::initialize): (QQuickWebViewLegacyPrivate::updateViewportSize): (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate): (QQuickWebViewFlickablePrivate::~QQuickWebViewFlickablePrivate): (QQuickWebViewFlickablePrivate::initialize): (QQuickWebViewFlickablePrivate::loadDidCommit): (QQuickWebViewFlickablePrivate::didFinishFirstNonEmptyLayout): (QQuickWebViewFlickablePrivate::didChangeViewportProperties): (QQuickWebViewFlickablePrivate::updateViewportSize): (QQuickWebViewFlickablePrivate::_q_updateVisibleContentRectAndScale): (QQuickWebViewFlickablePrivate::_q_suspend): (QQuickWebViewFlickablePrivate::_q_resume): (QQuickWebViewFlickablePrivate::pageDidRequestScroll): (QQuickWebViewFlickablePrivate::didChangeContentsSize): (QQuickWebViewFlickablePrivate::computeViewportConstraints): (QQuickWebViewFlickablePrivate::PostTransitionState::apply): (QQuickWebViewExperimental::setFlickableViewportEnabled): The switch is now a static function that has to be called before a WebView is created. The switch can have it's default defined by the deploying platform. (QQuickWebViewExperimental::flickableViewportEnabled): (QQuickWebView::QQuickWebView): On creation of QQuickWebView, the static boolean is read to know if we want a QQuickWebViewTouchPrivate or a QQuickWebViewDesktopPrivate. (QQuickWebView::geometryChanged): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): (QQuickWebViewPrivate::loadDidCommit): (QQuickWebViewPrivate::didFinishFirstNonEmptyLayout): (QQuickWebViewPrivate::didChangeViewportProperties): (QQuickWebViewPrivate::viewportInteractionEngine): (QQuickWebViewPrivate::updateViewportSize): (QQuickWebViewPrivate::_q_updateVisibleContentRectAndScale): (QQuickWebViewPrivate::_q_suspend): (QQuickWebViewPrivate::_q_resume): (QQuickWebViewPrivate::pageDidRequestScroll): (QQuickWebViewPrivate::didChangeContentsSize): (QQuickWebViewLegacyPrivate): (QQuickWebViewFlickablePrivate): (QQuickWebViewFlickablePrivate::viewportInteractionEngine): (PostTransitionState): (QQuickWebViewFlickablePrivate::PostTransitionState::PostTransitionState): * UIProcess/API/qt/qwebviewportinfo.cpp: (QWebViewportInfo::currentScale): (QWebViewportInfo::devicePixelRatio): (QWebViewportInfo::initialScale): (QWebViewportInfo::minimumScale): (QWebViewportInfo::maximumScale): (QWebViewportInfo::isScalable): (QWebViewportInfo::layoutSize): * UIProcess/API/qt/tests/publicapi/publicapi.pro: * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro: Added. * UIProcess/API/qt/tests/qmltests/DesktopBehavior/DesktopWebView.qml: Removed. * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_itemSelector.qml. Moved to DesktopBehavior instead of using a DesktopWebView to workaround the touch event limitation. * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_linkHovered.qml: * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_loadHtml.qml: * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_messaging.qml: * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_navigationRequested.qml: * UIProcess/API/qt/tests/qmltests/WebView.pro: Copied from Source/WebKit2/UIProcess/API/qt/tests/qmltests/qmltests.pro. * UIProcess/API/qt/tests/qmltests/qmltests.pro: Split qmltests in two executables, tst_qmltests_DesktopBehavior and tst_qmltests_WebView. The former runs without setFlickableViewportEnabled and the later does. * UIProcess/API/qt/tests/qmltests/tst_qmltests.cpp: (main): * UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro: * UIProcess/API/qt/tests/tests.pri: * UIProcess/qt/QtWebPageEventHandler.cpp: (QtWebPageEventHandler::QtWebPageEventHandler): 2012-02-02 Jocelyn Turcotte [Qt] Rename content* to contents* in QQuickWebPage. https://bugs.webkit.org/show_bug.cgi?id=77629 Reviewed by Kenneth Rohde Christiansen. * UIProcess/API/qt/qquickwebpage.cpp: (QQuickWebPagePrivate::QQuickWebPagePrivate): (QQuickWebPagePrivate::paintToCurrentGLContext): (QQuickWebPage::setContentsSize): (QQuickWebPage::contentsSize): (QQuickWebPage::setContentsScale): (QQuickWebPage::contentsScale): (QQuickWebPage::transformToItem): (QQuickWebPagePrivate::updateSize): * UIProcess/API/qt/qquickwebpage_p.h: * UIProcess/API/qt/qquickwebpage_p_p.h: (QQuickWebPagePrivate): * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::didChangeContentsSize): (QQuickWebViewPrivate::updateVisibleContentRectAndScale): (QQuickWebViewPrivate::PostTransitionState::apply): * UIProcess/API/qt/qwebviewportinfo.cpp: (QWebViewportInfo::contentsSize): * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp: (tst_QQuickWebView::scrollRequest): * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::setItemRectVisible): (WebKit::QtViewportInteractionEngine::event): (WebKit::QtViewportInteractionEngine::wheelEvent): (WebKit::QtViewportInteractionEngine::pagePositionRequest): (WebKit::QtViewportInteractionEngine::computePosRangeForItemAtScale): (WebKit::QtViewportInteractionEngine::applyConstraints): (WebKit::QtViewportInteractionEngine::currentCSSScale): (WebKit::QtViewportInteractionEngine::pinchGestureStarted): (WebKit::QtViewportInteractionEngine::scaleContent): 2012-02-03 Simon Hausmann [Qt] Fix build when cross-compiling https://bugs.webkit.org/show_bug.cgi?id=77634 Reviewed by Tor Arne Vestbø. * WebKit2.pri: Link in -lrt on linux mkspecs, regardless of whether gcc is in use or not. More specifically this fixes the case where the makespace is not linux-g++* but for a cross-compiling one like linux-arm-gnueabi-g++. 2012-02-03 Shinya Kawanaka Stop calling Element::ensureShadowRoot in Internals. https://bugs.webkit.org/show_bug.cgi?id=77612 Reviewed by Hajime Morita. Exports symbols. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-02-02 Sheriff Bot Unreviewed, rolling out r106620. http://trac.webkit.org/changeset/106620 https://bugs.webkit.org/show_bug.cgi?id=77716 It broke non ENABLE(3D_RENDERING) builds (Requested by Ossy_morning on #webkit). * UIProcess/qt/LayerTreeHostProxyQt.cpp: (WebKit::LayerTreeHostProxy::paintToCurrentGLContext): (WebKit::LayerTreeHostProxy::paintToGraphicsContext): (WebKit::LayerTreeHostProxy::createImage): (WebKit::LayerTreeHostProxy::ensureRootLayer): 2012-02-02 No'am Rosenthal [Qt][Texmap] Refactor TextureMapper API to use ImageBuffers when possible. https://bugs.webkit.org/show_bug.cgi?id=77148 Reviewed by Martin Robinson. Use TextureMapper::create instead of creating TextureMapperGL/TextureMapperQt directly. Remove calls to unused API. * UIProcess/qt/LayerTreeHostProxyQt.cpp: (WebKit::LayerTreeHostProxy::paintToCurrentGLContext): (WebKit::LayerTreeHostProxy::paintToGraphicsContext): (WebKit::LayerTreeHostProxy::createImage): (WebKit::LayerTreeHostProxy::ensureRootLayer): 2012-02-02 Jon Lee Clear shown notifications when context is no longer active https://bugs.webkit.org/show_bug.cgi?id=77363 Reviewed by Darin Adler. * WebProcess/WebCoreSupport/WebNotificationClient.cpp: (WebKit::WebNotificationClient::clearNotifications): Forward the call to WebNotificationManager. * WebProcess/WebCoreSupport/WebNotificationClient.h: (WebNotificationClient): * WebProcess/Notifications/WebNotificationManager.h: Add an additional map that maps all notifications associated with a given ScriptExecutionContext instance. * WebProcess/Notifications/WebNotificationManager.cpp: (WebKit::WebNotificationManager::show): Create a map entry for the notification's context if it doesn't exist already, and note that notification's ID. Also, correct the return value of show() if notifications are not enabled, to return false. (WebKit::WebNotificationManager::didCloseNotifications): When the notification is closed, we remove that notification from the map. (WebKit::WebNotificationManager::clearNotifications): Use the map entry for the given context, and pass that along to the proxy so that all of the notifications with those IDs can be cleared. In the meantime, we remove that context's map entry. * UIProcess/Notifications/WebNotificationManagerProxy.messages.in: New ClearNotifications() message. * UIProcess/Notifications/WebNotificationManagerProxy.h: * UIProcess/Notifications/WebNotificationManagerProxy.cpp: (WebKit::WebNotificationManagerProxy::clearNotifications): Forward the call to the provider. Then remove this proxy's entries for the given notification IDs. * UIProcess/Notifications/WebNotificationProvider.cpp: (WebKit::WebNotificationProvider::clearNotifications): Convert the vector of IDs to a mutable array. * UIProcess/Notifications/WebNotificationProvider.h: (WebNotificationProvider): * UIProcess/API/C/WKNotificationProvider.h: Add WK API to tell the platform to clear the notifications. Remove the #if guard since they already exist in WebNotificationManager functions: * WebProcess/WebCoreSupport/WebNotificationClient.cpp: (WebKit::WebNotificationClient::show): (WebKit::WebNotificationClient::cancel): (WebKit::WebNotificationClient::notificationObjectDestroyed): 2012-02-02 Anders Carlsson NPAPI will not send mouse up events when mouse is outside plugin area https://bugs.webkit.org/show_bug.cgi?id=77657 Reviewed by Andreas Kling. Use EventHandler::setCapturingMouseEventsNode to ensure we get all the mouse events when the mouse is down. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::handleEvent): 2012-02-02 Claudio Saavedra and Martin Robinson [GTK] WebKitWebView won't work in a GtkOffscreenWindow https://bugs.webkit.org/show_bug.cgi?id=76911 Reviewed by Philippe Normand. * UIProcess/API/gtk/WebKitUIClient.cpp: (getWindowFrame): Use the new helper. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewCreateJavaScriptDialog): Ditto * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseRealize): Ditto. (webkitWebViewBaseSizeAllocate): Ditto. (webkitWebViewBaseFocusInEvent): Ditto. 2012-02-01 Philippe Normand [GStreamer] FFTFrame implementation https://bugs.webkit.org/show_bug.cgi?id=73545 Reviewed by Chris Rogers. * GNUmakefile.am: Remove libfftw compilation flags. 2012-02-01 No'am Rosenthal [Texmap] Use glScissors for clipping in TextureMapperGL when possible https://bugs.webkit.org/show_bug.cgi?id=77575 Reviewed by Martin Robinson. Instead of applying the scissor clip in QQuickWebPage, we trickle it down to TextureMapperGL, and apply it there as part of beginClip(). All direct GL operations are now cleaned out of QQuickWebPage. * UIProcess/API/qt/qquickwebpage.cpp: (QQuickWebPagePrivate::paintToCurrentGLContext): * UIProcess/DrawingAreaProxy.h: (WebKit::DrawingAreaProxy::paintToCurrentGLContext): * UIProcess/DrawingAreaProxyImpl.cpp: (WebKit::DrawingAreaProxyImpl::paintToCurrentGLContext): * UIProcess/DrawingAreaProxyImpl.h: (DrawingAreaProxyImpl): * UIProcess/LayerTreeHostProxy.h: (LayerTreeHostProxy): * UIProcess/qt/LayerTreeHostProxyQt.cpp: (WebKit::LayerTreeHostProxy::paintToCurrentGLContext): 2012-02-01 Dan Bernstein WebKit2 part of Paginated display does not respect page-break-{before,after} https://bugs.webkit.org/show_bug.cgi?id=77505 Reviewed by Darin Adler. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): Encode paginationBehavesLikeColumns. (WebKit::WebPageCreationParameters::decode): Decode paginationBehavesLikeColumns. * Shared/WebPageCreationParameters.h: (WebPageCreationParameters): Added paginationBehavesLikeColumns boolean. * UIProcess/API/C/WKPage.cpp: (WKPageSetPaginationBehavesLikeColumns): Added this setter. (WKPageGetPaginationBehavesLikeColumns): Added this getter. * UIProcess/API/C/WKPagePrivate.h: * UIProcess/API/mac/WKBrowsingContextController.mm: (-[WKBrowsingContextController setPaginationBehavesLikeColumns:]): Added this Objective-C wrapper around WKPageSetPaginationBehavesLikeColumns. (-[WKBrowsingContextController paginationBehavesLikeColumns]): Added this Objective-C wrapper around WKPageGetPaginationBehavesLikeColumns. * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): Added call to setPaginationBehavesLikeColumns() with the value from the creation parameters. (WebKit::WebPageProxy::setPaginationBehavesLikeColumns): Added this setter. (WebKit::WebPageProxy::creationParameters): Populate paginationBehavesLikeColumns. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::paginationBehavesLikeColumns): Added this getter. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setPaginationBehavesLikeColumns): Added this setter. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Added SetPaginationBehavesLikeColumns message. 2012-02-01 Anders Carlsson REGRESSION (r104727): Strange graphics corruption opening a new tab in Safari https://bugs.webkit.org/show_bug.cgi?id=77578 Reviewed by Dan Bernstein. Resizing a window will always invalidate the window backing store, so make sure to set _data->_windowHasValidBackingStore to NO whenever that happens. * UIProcess/API/mac/WKView.mm: (-[WKView addWindowObserversForWindow:]): Use separate methods for the NSWindowDidMoveNotification and NSWindowDidResizeNotification notifications. (-[WKView _windowDidMove:]): Call -[WKView _updateWindowAndViewFrames]. (-[WKView _windowDidResize:]): Call -[WKView _updateWindowAndViewFrames] and mark the window backing store as invalid. 2012-02-01 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=77383 Add a different didFirstVisuallNonEmptyLayout heuristic to experiment with -and corresponding- Reviewed by Sam Weinig. Machinery for didNewFirstVisuallNonEmptyLayout. * UIProcess/API/C/WKPage.h: * UIProcess/WebLoaderClient.cpp: (WebKit::WebLoaderClient::didNewFirstVisuallyNonEmptyLayout): (WebKit): * UIProcess/WebLoaderClient.h: (WebLoaderClient): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didNewFirstVisuallyNonEmptyLayout): (WebKit): * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidNewFirstVisuallyNonEmptyLayout): (WebKit): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: (WebFrameLoaderClient): This temporary API allows the client to specify the threshold for the painted objects counter on Page. This is temporary. * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageSetPaintedObjectsCounterThreshold): * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setPaintedObjectsCounterThreshold): (WebKit): * WebProcess/WebPage/WebPage.h: (WebPage): 2012-01-31 Alexey Proskuryakov REGRESSION (WebKit2): event.keyCode is always zero when typing in Russian https://bugs.webkit.org/show_bug.cgi?id=77473 Reviewed by Darin Adler. * Shared/mac/WebEventFactory.mm: Removed broken copy/pasted implementation in favor of WebCore ones. 2012-01-31 Alexey Proskuryakov PluginProcess should be able to use remote open and save panels https://bugs.webkit.org/show_bug.cgi?id=77461 Reviewed by Mark Rowe. * PluginProcess/mac/PluginProcess.entitlements: Added. * PluginProcess/mac/add-entitlements.sh: Added. * WebKit2.xcodeproj/project.pbxproj: Add appropriate entitlement, plus ad hoc binary signing for it to work. 2012-01-31 Allan Sandfeld Jensen Ensure tiles are repainted when scrolling using mouse wheel. https://bugs.webkit.org/show_bug.cgi?id=77339 A new slot visibleContentRectAndScaleChanged has been added that is emited by non-animated scrolling code in the QtViewportInteractionEngine. Reviewed by Kenneth Rohde Christiansen. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::initializeDesktop): (QQuickWebViewPrivate::initializeTouch): (QQuickWebViewPrivate::_q_resume): (QQuickWebViewPrivate::_q_updateVisibleContentRectAndScale): (QQuickWebViewPrivate::updateTouchViewportSize): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::wheelEvent): * UIProcess/qt/QtViewportInteractionEngine.h: (QtViewportInteractionEngine): 2012-01-31 Zeno Albisser [Qt][WK2] Make UIProcess decide about encoding of input data for application URL schemes. https://bugs.webkit.org/show_bug.cgi?id=77417 Make the UIProcess decide about the encoding and display a warning in case no encoding was defined. Make the QQuickNetworkReply store a QWeakPointer to the QQuickWebViewExperimental to get rid of hackish chain of parental queries. Reviewed by Simon Hausmann. * UIProcess/API/qt/qquicknetworkreply.cpp: (QQuickNetworkReply::send): (QQuickNetworkReply::setWebViewExperimental): * UIProcess/API/qt/qquicknetworkreply_p.h: * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewExperimental::schemeDelegates_Append): * WebProcess/qt/QtNetworkReply.cpp: (WebKit::QtNetworkReply::QtNetworkReply): (WebKit::QtNetworkReply::setReplyData): 2012-01-30 Jocelyn Turcotte [Qt] Disconnect the LayerTreeHost from layers when they get removed from their parent. https://bugs.webkit.org/show_bug.cgi?id=77362 Reviewed by Noam Rosenthal. This fixes crashes seen in layout tests under certain timing circumstances that appeared after r106109 was landed. * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp: (WebCore::WebGraphicsLayer::replaceChild): (WebCore::WebGraphicsLayer::removeFromParent): 2012-01-30 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=77263 PlatformScreenMac should not rely on NSWindow for important bits of data Reviewed by Geoff Garen. toUserSpace() and toDeviceSpace() now take a parameter for the deviceScaleFactor. * UIProcess/API/mac/WKView.mm: (-[WKView _convertToDeviceSpace:]): (-[WKView _convertToUserSpace:]): 2012-01-26 No'am Rosenthal and Jocelyn Turcotte [Qt] WKTR: Use a software rendering pipiline when running tests. https://bugs.webkit.org/show_bug.cgi?id=76708 Reviewed by Kenneth Rohde Christiansen. Animation layout tests require the graphics layers tree to be updated to pass. WebkitTestRunner doesn't show its wrapping QQuickView, which prevents the rendering pipeline to run and then in turn blocks the web process from processing further graphics layer updates. This allows the tests to use a TextureMapperQt to empty the LayerTreeHost's message queue and render the layers in software on an offscreen buffer. * UIProcess/API/qt/qquickwebpage.cpp: (QQuickWebPagePrivate::paint): * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::QQuickWebViewPrivate): (QQuickWebViewPrivate::setNeedsDisplay): (QQuickWebViewExperimental::setRenderToOffscreenBuffer): (QQuickWebViewExperimental::renderToOffscreenBuffer): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate::setRenderToOffscreenBuffer): (QQuickWebViewPrivate::renderToOffscreenBuffer): * UIProcess/qt/LayerTreeHostProxyQt.cpp: (WebKit::LayerTreeHostProxy::paintToGraphicsContext): 2012-01-30 Andras Becsi [Qt][WK2] Render layers do not get flushed when the scroll animation finishes https://bugs.webkit.org/show_bug.cgi?id=77338 Reviewed by Noam Rosenthal. Schedule a layer flush when setting the visible content rect and scale. Fixed with the help of Jocelyn Turcotte * WebProcess/WebPage/qt/LayerTreeHostQt.cpp: (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale): 2012-01-30 Carlos Garcia Campos Unreviewed. Fix make distcheck. * GNUmakefile.am: Add missing files. * WebProcess/WebPage/TapHighlightController.cpp: Add #if ENABLE(TOUCH_EVENTS). 2012-01-29 Sheriff Bot Unreviewed, rolling out r106022. http://trac.webkit.org/changeset/106022 https://bugs.webkit.org/show_bug.cgi?id=77305 It broke Qt-WK2 API tests (Requested by Ossy_weekend on #webkit). * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour): (QQuickWebView::geometryChanged): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qwebviewportinfo.cpp: (QWebViewportInfo::currentScale): (QWebViewportInfo::devicePixelRatio): (QWebViewportInfo::initialScale): (QWebViewportInfo::minimumScale): (QWebViewportInfo::maximumScale): (QWebViewportInfo::isScalable): (QWebViewportInfo::layoutSize): 2012-01-29 Sheriff Bot Unreviewed, rolling out r106109. http://trac.webkit.org/changeset/106109 https://bugs.webkit.org/show_bug.cgi?id=77302 It made tests crash (Requested by Ossy_weekend on #webkit). * UIProcess/API/qt/qquickwebpage.cpp: * UIProcess/API/qt/qquickwebpage_p_p.h: (QQuickWebPagePrivate): * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::QQuickWebViewPrivate): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): * UIProcess/DrawingAreaProxy.h: * UIProcess/DrawingAreaProxyImpl.cpp: * UIProcess/DrawingAreaProxyImpl.h: (DrawingAreaProxyImpl): * UIProcess/LayerTreeHostProxy.h: (LayerTreeHostProxy): * UIProcess/qt/LayerTreeHostProxyQt.cpp: (WebKit::LayerTreeHostProxy::paintToCurrentGLContext): * UIProcess/qt/QtPageClient.cpp: (QtPageClient::setViewNeedsDisplay): 2012-01-27 Fady Samuel Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting https://bugs.webkit.org/show_bug.cgi?id=76459 Reviewed by Darin Fisher. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-01-27 Martin Robinson Fix a compilation warning in a WebKit2 GTK+ API test. Reviewed by Gustavo Noronha Silva. * UIProcess/API/gtk/tests/TestBackForwardList.cpp: (testBackForwardListLimitAndCache): Use an int instead of size_t because we want to print them as ints and do subtraction on them. 2012-01-27 Martin Robinson [GTK] [WK2] Implement the policy client https://bugs.webkit.org/show_bug.cgi?id=76343 Reviewed by Gustavo Noronha Silva. Implement the abstract WebKitPolicyDecision, WebKitNavigationPolicyDecision, and add the decide-policy signal to WebKitWebView. * GNUmakefile.am: Add new files to the source list. * UIProcess/API/gtk/WebKitError.cpp: Use the WebCore namespace because of changes to ASSERT_MATCHING_ENUMS. * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp: Added. * UIProcess/API/gtk/WebKitNavigationPolicyDecision.h: Added. * UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h: Added. * UIProcess/API/gtk/WebKitPolicyClient.cpp: Added. * UIProcess/API/gtk/WebKitPolicyClientPrivate.h: Added. * UIProcess/API/gtk/WebKitPolicyDecision.cpp: Added. * UIProcess/API/gtk/WebKitPolicyDecision.h: Added. * UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h: Added. * UIProcess/API/gtk/WebKitPrivate.h: Modify ASSERT_MATCHING_ENUMS to make it useful for non-WebCore enums. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewConstructed): Attach the policy client callbacks to the page. (webkit_web_view_class_init): Add the decide-policy signal definition. (webkitWebViewMakePolicyDecision): Added this private method to fire the signal. * UIProcess/API/gtk/WebKitWebView.h: Added new signal to the list. * UIProcess/API/gtk/WebKitWebViewPrivate.h: Added new method declaration. * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Added new classes to the docs. * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto. * UIProcess/API/gtk/tests/GNUmakefile.am: Added new test to the source list. * UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp: Added. * UIProcess/API/gtk/webkit2marshal.list: decide-policy has a new signature. 2012-01-27 Ada Chan Add API to get the parent frame in WKBundleFrameRef https://bugs.webkit.org/show_bug.cgi?id=77161 Reviewed by Anders Carlsson. * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: (WKBundleFrameGetParentFrame): Get the parent frame by calling WebFrame::parentFrame(). * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::parentFrame): Return null if the frame does not have an owner element. Otherwise, return the owner element's frame. * WebProcess/WebPage/WebFrame.h: 2012-01-27 Gustavo Noronha Silva [GTK] Sometimes fails to build when using make -j https://bugs.webkit.org/show_bug.cgi?id=77226 Reviewed by Martin Robinson. * GNUmakefile.am: use a different name for the scripts used to generate enum files for WebKitGTK+ and WebKit2GTK+, so they do not clash; 2012-01-27 Jocelyn Turcotte Fix overridePreference for WebKitHixie76WebSocketProtocolEnabled in WebKitTestRunner. https://bugs.webkit.org/show_bug.cgi?id=77220 Reviewed by Noam Rosenthal. * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): The macro already stringify TestRunnerName. 2012-01-27 Carlos Garcia Campos [GTK] Add a GKeyFile especialization to GOwnPtr https://bugs.webkit.org/show_bug.cgi?id=77191 Reviewed by Martin Robinson. * Shared/gtk/ArgumentCodersGtk.cpp: (CoreIPC::decodeGKeyFile): Use GOwnPtr for GKeyFile. (CoreIPC::encode): Ditto. (CoreIPC::decode): Ditto. 2012-01-27 Kenneth Rohde Christiansen [Qt] Fade out tap highlighting when starting to pan https://bugs.webkit.org/show_bug.cgi?id=77202 Reviewed by Simon Hausmann. Basically we need to fade out the potential tap highlighting when ever the gesture recognition fails or another gesture is recognized. We do that with this change. * UIProcess/qt/QtTapGestureRecognizer.cpp: (WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer): (WebKit::QtTapGestureRecognizer::recognize): (WebKit::QtTapGestureRecognizer::reset): Remove reset as it does nothing but call code before the event handler is installed. 2012-01-26 No'am Rosenthal and Jocelyn Turcotte [Qt] WKTR: Use a software rendering pipiline when running tests. https://bugs.webkit.org/show_bug.cgi?id=76708 Reviewed by Kenneth Rohde Christiansen. Animation layout tests require the graphics layers tree to be updated to pass. WebkitTestRunner doesn't show its wrapping QQuickView, which prevents the rendering pipeline to run and then in turn blocks the web process from processing further graphics layer updates. This allows the tests to use a TextureMapperQt to empty the LayerTreeHost's message queue and render the layers in software on an offscreen buffer. * UIProcess/API/qt/qquickwebpage.cpp: (QQuickWebPagePrivate::paint): * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::QQuickWebViewPrivate): (QQuickWebViewPrivate::setNeedsDisplay): (QQuickWebViewExperimental::setRenderToOffscreenBuffer): (QQuickWebViewExperimental::renderToOffscreenBuffer): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate::setRenderToOffscreenBuffer): (QQuickWebViewPrivate::renderToOffscreenBuffer): * UIProcess/qt/LayerTreeHostProxyQt.cpp: (WebKit::LayerTreeHostProxy::paintToGraphicsContext): 2012-01-27 Simon Hausmann [Qt] Re-creating QQuickWebView starts new web process every time https://bugs.webkit.org/show_bug.cgi?id=77194 Reviewed by Kenneth Rohde Christiansen. Since the WebKit::WebContext is never fully destructed due to circular references, we should use the real shared context instead of re-creating a new WebContext every time. * UIProcess/qt/QtWebContext.cpp: (WebKit::QtWebContext::defaultContext): 2012-01-26 Carlos Garcia Campos [GTK] Add basic printing support to WebKit2 https://bugs.webkit.org/show_bug.cgi?id=76172 Reviewed by Gustavo Noronha Silva. * GNUmakefile.am: Add new files to compilation. * Shared/PrintInfo.cpp: (WebKit::PrintInfo::encode): Encode also GtkPrintSettings and GtkPageSetup for the GTK+ port. (WebKit::PrintInfo::decode): Decode also GtkPrintSettings and GtkPageSetup for the GTK+ port. * Shared/PrintInfo.h: Add GtkPrintSettings and GtkPageSetup member for the GTK+ port. * Shared/gtk/ArgumentCodersGtk.cpp: (CoreIPC::encodeGKeyFile): Helper function to encode a GKeyFile as a DataReference object. (CoreIPC::decodeGKeyFile): Helper function to decode a GKeyFile to a DataReference object. (CoreIPC::encode): Encode GtkPrintSettings and GtkPageSetup using the GKeyFile representation. (CoreIPC::decode): Decode GtkPrintSettings and GtkPageSetup using the GKeyFile representation. * Shared/gtk/ArgumentCodersGtk.h: * Shared/gtk/PrintInfoGtk.cpp: Copied from Source/WebKit2/Shared/PrintInfo.cpp. (WebKit::PrintInfo::PrintInfo): Add PrintInfo constructor that takes GtkPrintSettings and GtkPageSetup instances. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::drawPagesForPrinting): Send DrawPagesForPrinting message to Web process to start printing. * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::beginPrinting): Create a WebPrintOperationGtk. (WebKit::WebPage::endPrinting): Delete the WebPrintOperationGtk object. (WebKit::WebPage::drawPagesForPrinting): Start printing pages. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Add DrawPagesForPrinting message. * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Added. (WebKit::PrintPagesData::PrintPagesData): Struct to store all data used to render pages for printing. (WebKit::PrintPagesData::incrementPageSequence): Helper function to increment the page sequence. (WebKit::WebPrintOperationGtk::create): Create a WebPrintOperationGtkUnix or WebPrintOperationGtkWin32 depending on the platform. (WebKit::WebPrintOperationGtk::WebPrintOperationGtk): (WebKit::WebPrintOperationGtk::~WebPrintOperationGtk): (WebKit::WebPrintOperationGtk::pageCount): Return the total pages of the document to print. (WebKit::WebPrintOperationGtk::rotatePage): Helper function to transform the context according to orientation. (WebKit::WebPrintOperationGtk::renderPage): Render the given page into the printing context. (WebKit::WebPrintOperationGtk::printPagesIdle): Idle function used to print pages. (WebKit::WebPrintOperationGtk::printPagesIdleDone): Callback called when printPagesIdle finishes. (WebKit::WebPrintOperationGtk::printDone): Helper function to finish the print operation, called when all pages have been rendered. (WebKit::WebPrintOperationGtk::print): Start printing the document using the given cairo surface. * WebProcess/WebPage/gtk/WebPrintOperationGtk.h: Added. (WebKit::WebPrintOperationGtk::printSettings): (WebKit::WebPrintOperationGtk::pageSetup): (WebKit::WebPrintOperationGtk::pagesToPrint): (WebKit::WebPrintOperationGtk::pageRanges): (WebKit::WebPrintOperationGtk::pageRangesCount): 2012-01-26 Tim Horton 3D transformed elements hide when showing the print dialog https://bugs.webkit.org/show_bug.cgi?id=45894 Reviewed by Andy Estes. Suspend updates of the compositing layer tree while printing is taking place, preventing on-screen layers from moving to their print-mode positions. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::beginPrinting): (WebKit::WebPage::endPrinting): * WebProcess/WebPage/ca/LayerTreeHostCA.h: * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h: * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm: (WebKit::LayerTreeHostCAMac::forceRepaint): (WebKit::LayerTreeHostCAMac::flushPendingLayerChanges): 2012-01-26 Andras Becsi [Qt][WK2] Add the componentComplete method to WebView https://bugs.webkit.org/show_bug.cgi?id=77111 Reviewed by Kenneth Rohde Christiansen. Move the touch/desktop initialization to componentComplete. Also return valid default values in the viewport info functions if the interaction engine is not yet initialized because the viewport info component could finish initialization earlier than the WebView, which results in QML warnings during MiniBrowser startup. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour): (QQuickWebView::geometryChanged): (QQuickWebView::componentComplete): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qwebviewportinfo.cpp: (QWebViewportInfo::currentScale): (QWebViewportInfo::devicePixelRatio): (QWebViewportInfo::initialScale): (QWebViewportInfo::minimumScale): (QWebViewportInfo::maximumScale): (QWebViewportInfo::isScalable): (QWebViewportInfo::layoutSize): 2012-01-26 Anders Carlsson WebWheelEvent::Phase and PlatformWheelEvent::Phase declarations should match AppKit https://bugs.webkit.org/show_bug.cgi?id=77123 Reviewed by Beth Dakin. * Shared/WebEvent.h: (): * Shared/mac/WebEventFactory.mm: (WebKit::phaseForEvent): 2012-01-26 Andras Becsi ASSERT(!m_overlay) reached in TapHighlightController.cpp:73 https://bugs.webkit.org/show_bug.cgi?id=77117 Reviewed by Tor Arne Vestbø. The PageOverlay does only get uninstalled after the fade-out animation finishes, so do not assert on !m_overlay after the uninstallPageOverlay call. * WebProcess/WebPage/TapHighlightController.cpp: (WebKit::TapHighlightController::hideHighlight): 2012-01-26 Caio Marcelo de Oliveira Filho WebPreferencesStore: use DEFINE_STATIC_LOCAL for overrides HashMap https://bugs.webkit.org/show_bug.cgi?id=77109 Reviewed by Andreas Kling. Fix build for Clang. * Shared/WebPreferencesStore.cpp: (WebKit): (WebKit::boolTestRunnerOverridesMap): (WebKit::WebPreferencesStore::overrideBoolValueForKey): (WebKit::WebPreferencesStore::removeTestRunnerOverrides): (WebKit::WebPreferencesStore::getBoolValueForKey): 2012-01-26 Caio Marcelo de Oliveira Filho Implement overridePreference for boolean preferences in WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=77033 Reviewed by Alexey Proskuryakov. Implement a way to WebKitTestRunner override preferences for the pages loaded. Follows the same approach taken by overrideXSSAuditorEnabledForTestRunner() from r66551, but generalizing to many preferences. Preferences are stored in the UI process using WebPreferencesStore, and when there's a change, this data is sent to Web process, triggering WebPage::preferencesDidChange(), which take a WebPreferencesStore and apply it's data to the WebCore::Settings object. The overridePreference() is executed on the Web process, and set the preferences without communicating to the UI process. The overriden preferences are stored in a static map and WebPreferencesStore query this map before returning the values of each preference. This static map is used only on the Web process. To clear the overrides we need to clear the map. Since WTR only sets preferences when resetting the page, we hook the clearing at WebPage::preferencesDidChange(). A WKPreferences private function was exposed to WTR force the update, in case there's no effective change at UI process (all the properties remains the same). This clearing could be improved by creating a proper message instead of hooking at WebPage::preferencesDidChange(). * Shared/WebPreferencesStore.cpp: (WebKit::WebPreferencesStore::decode): (WebKit::WebPreferencesStore::overrideBoolValueForKey): (WebKit::WebPreferencesStore::removeTestRunnerOverrides): (WebKit::WebPreferencesStore::getBoolValueForKey): * Shared/WebPreferencesStore.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesResetTestRunnerOverrides): * UIProcess/API/C/WKPreferencesPrivate.h: * UIProcess/WebPreferences.h: (WebKit::WebPreferences::forceUpdate): * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleOverrideBoolPreferenceForTestRunner): * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): (WebKit::InjectedBundle::overrideXSSAuditorEnabledForTestRunner): * WebProcess/InjectedBundle/InjectedBundle.h: 2012-01-26 Carlos Garcia Campos [GTK][WK2] Primary clipboard should be updated with the current selection in X11 platforms https://bugs.webkit.org/show_bug.cgi?id=77097 Reviewed by Martin Robinson. * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::respondToChangedSelection): Call setSelectionPrimaryClipboardIfNeeded() to update primary clipboard in X11 platforms. * WebProcess/WebCoreSupport/WebEditorClient.h: * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: (WebKit::collapseSelection): Callback called when clearing clipboard contents. (WebKit::WebEditorClient::setSelectionPrimaryClipboardIfNeeded): Updaye primary clipboard with the current selection. 2012-01-26 Zeno Albisser [Qt][WK2] Use QVariant for payload data in application URL schemes. https://bugs.webkit.org/show_bug.cgi?id=77007 Make application schemes use QVariant for payload data. This allows passing QByteArrays as well as simple String data. Remove unneeded http header parts that were exposed in QQuickNetworkReply. Add ByteArrayTestData class to allow injecting QByteArray data into an application scheme handler for testing. Reviewed by Simon Hausmann. * Shared/qt/QtNetworkReplyData.cpp: (WebKit::QtNetworkReplyData::QtNetworkReplyData): (WebKit::QtNetworkReplyData::encode): (WebKit::QtNetworkReplyData::decode): * Shared/qt/QtNetworkReplyData.h: * UIProcess/API/qt/qquicknetworkreply.cpp: (QQuickNetworkReply::QQuickNetworkReply): (QQuickNetworkReply::data): (QQuickNetworkReply::setData): (QQuickNetworkReply::send): * UIProcess/API/qt/qquicknetworkreply_p.h: * UIProcess/API/qt/tests/bytearraytestdata.cpp: Added. (ByteArrayTestData::ByteArrayTestData): (ByteArrayTestData::latin1Data): (ByteArrayTestData::utf8Data): * UIProcess/API/qt/tests/bytearraytestdata.h: Added. * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml: * UIProcess/API/qt/tests/qmltests/tst_qmltests.cpp: (main): * UIProcess/API/qt/tests/tests.pri: * WebProcess/qt/QtNetworkReply.cpp: (WebKit::QtNetworkReply::setReplyData): * WebProcess/qt/QtNetworkReply.h: 2012-01-26 Thiago Marcos P. Santos [Qt] Fixed build when using force_static_libs_as_shared https://bugs.webkit.org/attachment.cgi?bugid=77082 Reviewed by Simon Hausmann. * Target.pri: 2012-01-26 Nándor Huszka [WK2] WebKitTestRunner needs layoutTestController.setGeolocationPermission https://bugs.webkit.org/show_bug.cgi?id=42545 Reviewed by Zoltan Herczeg. Implement the setGeolocationPermission method. * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleSetGeolocationPermission): * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::setGeoLocationPermission): (WebKit): * WebProcess/InjectedBundle/InjectedBundle.h: (InjectedBundle): 2012-01-25 Mark Rowe Build in to an alternate location when USE_STAGING_INSTALL_PATH is set. Adopt USE_STAGING_INSTALL_PATH Reviewed by David Kilzer. * Configurations/BaseTarget.xcconfig: Define NORMAL_WEBKIT2_FRAMEWORKS_DIR, which contains the path where WebKit is normally installed. Update WEBKIT2_FRAMEWORKS_DIR to point to the staged frameworks directory when USE_STAGING_INSTALL_PATH is set. Update UMBRELLA_FRAMEWORKS_DIR so we can find WebCore at the top level of the staged frameworks directory when USE_STAGING_INSTALL_PATH is set, rather than finding it embedded inside of WebKit.framework. * Configurations/PluginProcess.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR. * Configurations/WebKit2.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR. Always set the framework's install name based on the normal framework location. This prevents an incorrect install name from being used when installing in to the staged frameworks directory. * Configurations/WebProcess.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR. 2012-01-25 No'am Rosenthal [WK2][Qt] REGRESSION: Pages with transform animations sometimes omit some of the layers since r105413 https://bugs.webkit.org/show_bug.cgi?id=76886 Reviewed by Kenneth Rohde Christiansen. We now render the whole layer if it or one if its ancestors has an active transform animations. It's possible to optimize further in the future, but not currently necessary. Also, we make sure that when a WebGraphicsLayer's property that affects transformation is changed, all its descandants layers are marked as modified so that we re-adjust their visible rect in the next pass. * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp: (WebCore::WebGraphicsLayer::notifyChangeRecursively): (WebCore): (WebCore::WebGraphicsLayer::setPosition): (WebCore::WebGraphicsLayer::setAnchorPoint): (WebCore::WebGraphicsLayer::setSize): (WebCore::WebGraphicsLayer::setTransform): (WebCore::WebGraphicsLayer::setChildrenTransform): (WebCore::WebGraphicsLayer::setPreserves3D): (WebCore::WebGraphicsLayer::setMasksToBounds): (WebCore::WebGraphicsLayer::addAnimation): (WebCore::WebGraphicsLayer::removeAnimation): (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect): (WebCore::WebGraphicsLayer::selfOrAncestorHasActiveTransformAnimations): * WebProcess/WebCoreSupport/WebGraphicsLayer.h: (WebGraphicsLayer): 2012-01-25 Hajime Morita ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom https://bugs.webkit.org/show_bug.cgi?id=76863 Reviewed by Dimitri Glazkov. Added a feature flag. * Configurations/FeatureDefines.xcconfig: 2012-01-25 Martin Robinson [WK2] Navigation events not triggered by a mouse event claim to be triggered by the left mouse button during policy decisions https://bugs.webkit.org/show_bug.cgi?id=76344 Reviewed by Sam Weinig. When creating InjectedBundleNavigationActions, initialize the mouse button to NoButton. This ensures that when there is no mouse event associated with the action, when the event hits the client-API layer, the button is still NoButton. * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction): Initialize m_mouseButton to WebMouseEvent::NoButton. 2012-01-25 Kenneth Rohde Christiansen [Qt] Implement tap feedback respecting -webkit-tap-highlight-color https://bugs.webkit.org/show_bug.cgi?id=76914 Reviewed by Simon Hausmann. Implement tap highlighting for Qt. When a touch press is issued, which is not handled by the web page, then we highlight any activatable node below. In all otehr cases, we hide any highlights. The highlighting itself is painted on an accelerated PageOverlay, on the web process side. * Target.pri: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handlePotentialActivation): * UIProcess/WebPageProxy.h: * UIProcess/qt/QtTapGestureRecognizer.cpp: (WebKit::QtTapGestureRecognizer::recognize): * UIProcess/qt/QtWebPageEventHandler.cpp: (QtWebPageEventHandler::handlePotentialSingleTapEvent): * UIProcess/qt/QtWebPageEventHandler.h: * WebProcess/WebPage/TapHighlightController.cpp: Added. (WebKit::TapHighlightController::TapHighlightController): (WebKit::TapHighlightController::~TapHighlightController): (WebKit::TapHighlightController::highlight): (WebKit::TapHighlightController::hideHighlight): (WebKit::TapHighlightController::pageOverlayDestroyed): (WebKit::TapHighlightController::willMoveToWebPage): (WebKit::TapHighlightController::didMoveToWebPage): (WebKit::highlightColor): (WebKit::TapHighlightController::drawRect): (WebKit::TapHighlightController::mouseEvent): * WebProcess/WebPage/TapHighlightController.h: Added. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::highlightPotentialActivation): * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::tapHighlightController): * WebProcess/WebPage/WebPage.messages.in: 2012-01-25 Nándor Huszka [WK2] WebKitTestRunner needs layoutTestController.setPopupBlockingEnabled https://bugs.webkit.org/show_bug.cgi?id=63458 Reviewed by Adam Roben. Implement the setPopupBlockingEnabled method. * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleSetPrivateBrowsingEnabled): (WKBundleSetPopupBlockingEnabled): * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::setPopupBlockingEnabled): * WebProcess/InjectedBundle/InjectedBundle.h: 2012-01-25 Yael Aharon [Qt] Build fix when using force_static_libs_as_shared https://bugs.webkit.org/show_bug.cgi?id=76832 Reviewed by Simon Hausmann. Add a dependency on QtWidgets. * Target.pri: 2012-01-24 Sergio Villar Senin [WK2] FindController should not assume that ports do not want to highlight text matches https://bugs.webkit.org/show_bug.cgi?id=76921 Reviewed by Darin Adler. FindController must obey the FindOptionsShowHighlight flag instead of assuming that ports do not want to highlight search matches. * Shared/API/c/WKFindOptions.h: added kWKFindOptionsShowHighlight. * Shared/API/c/WKSharedAPICast.h: (WebKit::toFindOptions): Ditto. * Shared/WebFindOptions.h: added FindOptionsShowHighlight. * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::findString): 2012-01-25 Carlos Garcia Campos [GTK] Page clients don't need to be GObjects anymore in WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=76899 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitLoaderClient.cpp: Renamed from Source/WebKit2/UIProcess/API/gtk/WebKitWebLoaderClient.cpp. (didStartProvisionalLoadForFrame): Use clientInfo instead fo getting the view from the page. (didReceiveServerRedirectForProvisionalLoadForFrame): Ditto. (didFailProvisionalLoadWithErrorForFrame): Ditto. (didCommitLoadForFrame): Ditto. (didFinishLoadForFrame): Ditto. (didFailLoadWithErrorForFrame): Ditto. (didSameDocumentNavigationForFrame): Ditto. (didReceiveTitleForFrame): Ditto. (didChangeProgress): Ditto. (didChangeBackForwardList): Ditto. (attachLoaderClientToView): Pass WebKitWebView as clientInfo to callbacks. * UIProcess/API/gtk/WebKitLoaderClient.h: Added. * UIProcess/API/gtk/WebKitUIClient.cpp: (createNewPage): Use clientInfo instead fo getting the view from the page. (showPage): Ditto. (closePage): Ditto. (runJavaScriptAlert): Ditto. (runJavaScriptConfirm): Ditto. (runJavaScriptPrompt): Ditto. (toolbarsAreVisible): Ditto. (setToolbarsAreVisible): Ditto. (menuBarIsVisible): Ditto. (setMenuBarIsVisible): Ditto. (statusBarIsVisible): Ditto. (setStatusBarIsVisible): Ditto. (isResizable): Ditto. (setIsResizable): Ditto. (getWindowFrame): Ditto. (setWindowFrame): Ditto. (attachUIClientToView): Pass WebKitWebView as clientInfo to callbacks. * UIProcess/API/gtk/WebKitUIClient.h: Remove GObject boilerplate. * UIProcess/API/gtk/WebKitWebLoaderClient.h: Removed. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewConstructed): Remove UIClient and LoaderClient objects and call attachUIClientToView() and attachLoaderClientToView(). * UIProcess/API/gtk/tests/GNUmakefile.am: Rename WebKitWebLoaderClient to WebKitLoaderClient. * UIProcess/API/gtk/tests/TestLoaderClient.cpp: Renamed from Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebLoaderClient.cpp. 2012-01-25 Roland Steiner