diff options
Diffstat (limited to 'Source/WebKit2/ChangeLog')
-rw-r--r-- | Source/WebKit2/ChangeLog | 5069 |
1 files changed, 5068 insertions, 1 deletions
diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog index bacf704..fa45768 100644 --- a/Source/WebKit2/ChangeLog +++ b/Source/WebKit2/ChangeLog @@ -1,3 +1,5070 @@ +2011-04-19 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + UI process thinks the page is unresponsive when a plug-in is showing a context menu + https://bugs.webkit.org/show_bug.cgi?id=58943 + <rdar://problem/9299901> + + Change the HandleMouseEvent message to have a delayed reply and make the PluginControllerProxy + respond to it immediately, before even passing the event to the plug-in. Since it doesn't matter + for mouse events whether the plug-in handled them or not we can do this. + + Another solution could have been to make handleMouseEvent an asynchronous message, but that could + mess up the message ordering so this seemed like the least intrusive change. + + * PluginProcess/PluginControllerProxy.cpp: + (WebKit::PluginControllerProxy::handleMouseEvent): + * PluginProcess/PluginControllerProxy.h: + * PluginProcess/PluginControllerProxy.messages.in: + +2011-04-19 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Terminate hung plug-in processes after 45 seconds + https://bugs.webkit.org/show_bug.cgi?id=58932 + <rdar://problem/8083219> + + * UIProcess/Plugins/PluginProcessManager.cpp: + (WebKit::PluginProcessManager::pluginSyncMessageSendTimedOut): + Find the plug-in process proxy and terminate it. + + (WebKit::PluginProcessManager::pluginProcessWithPath): + Add new helper function. + + (WebKit::PluginProcessManager::getOrCreatePluginProcess): + Call pluginProcessWithPath. + + * UIProcess/Plugins/PluginProcessProxy.cpp: + (WebKit::PluginProcessProxy::terminate): + Terminate the process. + + * UIProcess/Plugins/PluginProcessProxy.h: + * UIProcess/WebProcessProxy.cpp: + (WebKit::WebProcessProxy::pluginSyncMessageSendTimedOut): + Call PluginProcessManager::pluginSyncMessageSendTimedOut. + + * UIProcess/WebProcessProxy.h: + * UIProcess/WebProcessProxy.messages.in: + Add PluginSyncMessageSendTimedOut message. + + * WebProcess/Plugins/PluginProcessConnection.cpp: + (WebKit::defaultSyncMessageTimeout): + (WebKit::PluginProcessConnection::PluginProcessConnection): + Set a sync message timeout on the plug-in process connection. + + (WebKit::PluginProcessConnection::syncMessageSendTimedOut): + Send a message to the web process proxy. + +2011-04-19 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Adele Peterson. + + WebKit2: Merge SelectionState and TextInputState + https://bugs.webkit.org/show_bug.cgi?id=58919 + + Combined TextInputState and EditorState in one structure, which is updated whenever we get + a chance to. There is no sense to keep possibly stale SelectionState data when we have already + requested the most recent data synchronously. + + This also simplifies the code, as we don't need to pass the state around in a separate variable. + + * GNUmakefile.am: + * Scripts/webkit2/messages.py: + * Shared/EditorState.h: Copied from Source/WebKit2/Shared/SelectionState.h. + (WebKit::EditorState::EditorState): + * Shared/SelectionState.h: Removed. + * Shared/mac/TextInputState.h: Removed. + * UIProcess/API/mac/PageClientImpl.h: + * UIProcess/API/mac/PageClientImpl.mm: + (WebKit::PageClientImpl::interpretKeyEvent): + * UIProcess/API/mac/WKView.mm: + (-[WKView validRequestorForSendType:returnType:]): + (-[WKView validateUserInterfaceItem:]): + (-[WKView shouldDelayWindowOrderingForEvent:]): + (-[WKView doCommandBySelector:]): + (-[WKView insertText:replacementRange:]): + (-[WKView _handleStyleKeyEquivalent:]): + (-[WKView _executeSavedKeypressCommands]): + (-[WKView inputContext]): + (-[WKView hasMarkedText]): + (-[WKView unmarkText]): + (-[WKView setMarkedText:selectedRange:replacementRange:]): + (-[WKView attributedSubstringForProposedRange:actualRange:]): + (-[WKView _interpretKeyEvent:savingCommandsTo:WebCore::]): + (-[WKView _updateSecureInputState]): + * UIProcess/API/mac/WKViewInternal.h: + * UIProcess/PageClient.h: + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::editorStateChanged): + * UIProcess/WebPageProxy.h: + (WebKit::WebPageProxy::editorState): + (WebKit::WebPageProxy::hasSelectedRange): + (WebKit::WebPageProxy::isContentEditable): + * UIProcess/WebPageProxy.messages.in: + * UIProcess/mac/WebPageProxyMac.mm: + (WebKit::WebPageProxy::setComposition): + (WebKit::WebPageProxy::confirmComposition): + (WebKit::WebPageProxy::insertText): + (WebKit::WebPageProxy::executeKeypressCommands): + (WebKit::WebPageProxy::writeSelectionToPasteboard): + (WebKit::WebPageProxy::readSelectionFromPasteboard): + (WebKit::WebPageProxy::interpretQueuedKeyEvent): + * UIProcess/win/WebView.cpp: + (WebKit::WebView::compositionSelectionChanged): + (WebKit::WebView::onIMEComposition): + (WebKit::WebView::onIMEEndComposition): + (WebKit::WebView::onIMERequestCharPosition): + (WebKit::WebView::onIMERequest): + * WebKit2.xcodeproj/project.pbxproj: + * WebProcess/WebCoreSupport/WebEditorClient.cpp: + (WebKit::WebEditorClient::respondToChangedSelection): + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::editorState): + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::handleEditingKeyboardEvent): + (WebKit::WebPage::setComposition): + (WebKit::WebPage::confirmComposition): + (WebKit::WebPage::insertText): + (WebKit::WebPage::executeKeypressCommands): + * win/WebKit2.vcproj: + +2011-04-19 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Timothy Hatcher. + + 100% reproducible crash when right-clicking any element in Web Inspector on any page + https://bugs.webkit.org/show_bug.cgi?id=58822 + + Web Inspector changes selection from JavaScript, and checks in UI process are insufficient + when selection is changing asynchronously. + + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::writeSelectionToPasteboard): Check that there is a selection, matching WK1 + and UI process side. Perhaps the check should really be in WebCore, but for now, it's a + WebKit responsibility. + (WebKit::WebPage::readSelectionFromPasteboard): Same check, for no other reason but consistency. + +2011-04-19 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Add syncMessageSendTimedOut CoreIPC Connection::Client member function + https://bugs.webkit.org/show_bug.cgi?id=58928 + + * Platform/CoreIPC/Connection.cpp: + (CoreIPC::Connection::waitForSyncReply): + Call syncMessageSendTimedOut. + + * Platform/CoreIPC/Connection.h: + Add syncMessageSendTimedOut to Connection::Client. + + * PluginProcess/PluginProcess.cpp: + * PluginProcess/PluginProcess.h: + * PluginProcess/WebProcessConnection.cpp: + * PluginProcess/WebProcessConnection.h: + * UIProcess/Plugins/PluginProcessProxy.cpp: + * UIProcess/Plugins/PluginProcessProxy.h: + * UIProcess/WebProcessProxy.cpp: + * UIProcess/WebProcessProxy.h: + * WebProcess/Plugins/PluginProcessConnection.cpp: + * WebProcess/Plugins/PluginProcessConnection.h: + * WebProcess/WebProcess.cpp: + * WebProcess/WebProcess.h: + Add syncMessageSendTimedOut stubs. + +2011-04-19 Anders Carlsson <andersca@apple.com> + + Reviewed by Alexey Proskuryakov. + + Replace the didFailToSendSyncMessage Connection::Client function with a flag + https://bugs.webkit.org/show_bug.cgi?id=58923 + + * Platform/CoreIPC/Connection.cpp: + (CoreIPC::Connection::Connection): + Initialize m_shouldExitOnSyncMessageSendFailure to false. + + (CoreIPC::Connection::setShouldExitOnSyncMessageSendFailure): + Set m_didCloseOnConnectionWorkQueueCallback. + + (CoreIPC::Connection::sendSyncMessage): + Call didFailToSendSyncMessage if we fail to send the sync message for some reason. + + (CoreIPC::Connection::didFailToSendSyncMessage): + if m_shouldExitOnSyncMessageSendFailure is true, exit. + + * Platform/CoreIPC/Connection.h: + Remove didFailToSendSyncMessage from Connection::Client. + + * PluginProcess/PluginProcess.cpp: + * PluginProcess/PluginProcess.h: + Remove didFailToSendSyncMessage. + + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::initialize): + * WebProcess/WebProcess.h: + Remove didFailToSendSyncMessage. Call setShouldExitOnSyncMessageSendFailure on our + UI process connection. + +2011-04-19 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Add a way to set the default sync message timeout for a CoreIPC connection + https://bugs.webkit.org/show_bug.cgi?id=58908 + + * Platform/CoreIPC/Connection.cpp: + (CoreIPC::Connection::Connection): + Initialize m_defaultSyncMessageTimeout. + + (CoreIPC::Connection::setDefaultSyncMessageTimeout): + Set the m_defaultSyncMessageTimeout member variable. + + (CoreIPC::Connection::waitForSyncReply): + Handle the timeout being one of our two special magic values. + + * Platform/CoreIPC/Connection.h: + Add a DefaultTimeout constant and change the NoTimeout constant to be -1. + +2011-04-19 Vsevolod Vlasov <vsevik@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Rename lengthReceived to encodedDataLength/dataLength + https://bugs.webkit.org/show_bug.cgi?id=58883 + + * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: + (WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength): + * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: + +2011-04-19 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Antonio Gomes. + + WebKit2: Typo fix in WebPopupMenu::Type. + https://bugs.webkit.org/show_bug.cgi?id=58891 + + Fixed a typo, Seperator -> Separator. + Also removed m_ prefix on an argument variable name. + + * Shared/WebPopupItem.h: + * UIProcess/mac/WebPopupMenuProxyMac.mm: + (WebKit::WebPopupMenuProxyMac::populate): + * WebProcess/WebCoreSupport/WebPopupMenu.cpp: + (WebKit::WebPopupMenu::populateItems): + +2011-04-19 Jon Honeycutt <jhoneycutt@apple.com> + + WKContextDownloadURLRequest() should return a WKDownloadRef + https://bugs.webkit.org/show_bug.cgi?id=58867 + Part of <rdar://problem/8931717> + + Reviewed by Steve Falkenburg. + + * UIProcess/API/C/WKContext.cpp: + (WKContextDownloadURLRequest): + Return the result of calling WebContext::download(). + + * UIProcess/API/C/WKContext.h: + Updated return type of WKContextDownloadURLRequest(). + + * UIProcess/WebContext.cpp: + (WebKit::WebContext::download): + Return the DownloadProxy returned by createDownloadProxy(). + (WebKit::WebContext::createDownloadProxy): + Return the DownloadProxy. + + * UIProcess/WebContext.h: + Changed return type of download() and createDownloadProxy(). + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::receivedPolicyDecision): + Call the DownloadProxy's downloadID() function to get the ID. + +2011-04-18 Jia Pu <jpu@apple.com> + + Reviewed by Mark Rowe. + + WebKit needs to stop importing <AppKit/NSTextChecker.h> + https://bugs.webkit.org/show_bug.cgi?id=58798 + <rdar://problem/9294938> + + Use public header <AppKit/NSSpellChecker.h> instead. + + * UIProcess/mac/CorrectionPanel.h: + * UIProcess/mac/CorrectionPanel.mm: + (correctionIndicatorType): + (WebKit::CorrectionPanel::show): + (WebKit::CorrectionPanel::dismissInternal): + (WebKit::CorrectionPanel::handleAcceptedReplacement): + * UIProcess/mac/TextCheckerMac.mm: + * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: + +2011-04-05 Jer Noble <jer.noble@apple.com> + + Reviewed by Sam Weinig. + + WebKit2: WKTR should support WebKit2 full screen APIs + https://bugs.webkit.org/show_bug.cgi?id=56318 + + Add a new WKBundlePage API for Full Screen events, and move some of the implementation + of WebFullScreenManager into the new InjectedBundlePageFullScreenClient class, so that + the default behavior can be overridden by a WKBundlePageFullScreenClient. + + * WebKit2.xcodeproj/project.pbxproj: + * WebProcess/FullScreen/WebFullScreenManager.cpp: + (WebKit::WebFullScreenManager::supportsFullScreen): Moved contents into InjectedBundlePageFullScreenClient. + (WebKit::WebFullScreenManager::enterFullScreenForElement): Ditto. + (WebKit::WebFullScreenManager::exitFullScreenForElement): Ditto. + * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: + (WKBundlePageSetFullScreenClient): Added. + (WKBundlePageWillEnterFullScreenForElement): Added. + (WKBundlePageDidEnterFullScreenForElement): Added. + (WKBundlePageWillExitFullScreenForElement): Added. + (WKBundlePageDidExitFullScreenForElement): Added. + * WebProcess/InjectedBundle/API/c/WKBundlePage.h: + * WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp: Added. + (WebKit::InjectedBundlePageFullScreenClient::supportsFullScreen): Added. + (WebKit::InjectedBundlePageFullScreenClient::enterFullScreenForElement): Added. + (WebKit::InjectedBundlePageFullScreenClient::exitFullScreenForElement): Added. + * WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h: Added. + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::initializeInjectedBundleFullScreenClient): Added. + * WebProcess/WebPage/WebPage.h: + (WebKit::WebPage::injectedBundleFullScreenClient): Added. + +2011-04-18 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Maciej Stachowiak. + + Re-add a null check lost in r83081 + https://bugs.webkit.org/show_bug.cgi?id=58846 + + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::getSelectedRange): + +2011-04-18 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt][WK2] Clean up tool-tip/status-bar confusion. + https://bugs.webkit.org/show_bug.cgi?id=58844 + + Tool-tips were incorrectly hooked up to the status bar text. + Chrome::setStatusbarText() now correctly causes the QWKPage::statusBarMessage() signal. + + New API: + - QWKPage::toolTipChanged(const QString& toolTip) [signal] + + QGraphicsWKView will automatically listen for this and set its own toolTip(). + + * UIProcess/API/qt/ClientImpl.cpp: + (qt_wk_setStatusText): + * UIProcess/API/qt/ClientImpl.h: + * UIProcess/API/qt/qgraphicswkview.cpp: + (QGraphicsWKView::QGraphicsWKView): + (QGraphicsWKViewPrivate::onToolTipChanged): + * UIProcess/API/qt/qgraphicswkview.h: + * UIProcess/API/qt/qwkpage.cpp: + (QWKPagePrivate::toolTipChanged): + (QWKPage::QWKPage): + * UIProcess/API/qt/qwkpage.h: + +2011-04-18 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Dan Bernstein. + + sandbox violation for ~/Library/Dictionaries + https://bugs.webkit.org/show_bug.cgi?id=58841 + <rdar://problem/9294770> + + * WebProcess/com.apple.WebProcess.sb: Add to sandbox profile. + No obvious harm from allowing this, though it's not 100% clear + why it's needed. + +2011-04-18 Anders Carlsson <andersca@apple.com> + + Try to fix the Windows build. + + * Scripts/webkit2/messages.py: + +2011-04-18 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Get rid of WebProcessProxyLegacyMessage + https://bugs.webkit.org/show_bug.cgi?id=58825 + + * GNUmakefile.am: + * Platform/CoreIPC/MessageID.h: + * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h: Removed. + * UIProcess/WebProcessProxy.cpp: + * WebKit2.xcodeproj/project.pbxproj: + * WebProcess/Plugins/PluginProcessConnectionManager.cpp: + * WebProcess/WebCoreSupport/WebChromeClient.cpp: + * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: + * WebProcess/WebPage/WebPage.cpp: + * win/WebKit2.vcproj: + +2011-04-18 Anders Carlsson <andersca@apple.com> + + Fix build. + + * UIProcess/Plugins/PluginInfoStore.h: + +2011-04-18 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Use the message generator for the GetPluginProcessConnection message + https://bugs.webkit.org/show_bug.cgi?id=58815 + + * Platform/CoreIPC/HandleMessage.h: + (CoreIPC::callMemberFunction): + (CoreIPC::handleMessageDelayed): + Add helper functions. + + * UIProcess/Plugins/PluginInfoStore.h: + Mark class noncopyable. + + * UIProcess/Plugins/PluginProcessManager.cpp: + (WebKit::PluginProcessManager::getPluginProcessConnection): + This now takes a delayed reply. + + * UIProcess/Plugins/PluginProcessProxy.cpp: + (WebKit::PluginProcessProxy::getPluginProcessConnection): + This now takes a delayed reply. + + (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): + (WebKit::PluginProcessProxy::didCreateWebProcessConnection): + Call DelayedReply::send. + + * UIProcess/WebProcessProxy.cpp: + (WebKit::WebProcessProxy::getPluginProcessConnection): + This now takes a delayed reply. + + (WebKit::WebProcessProxy::didReceiveSyncMessage): + No need to handle this message here. + + * UIProcess/WebProcessProxy.messages.in: + Add GetPluginProcessConnection message. + + * WebProcess/Plugins/PluginProcessConnectionManager.cpp: + (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): + Don't use deprecatedSendSync. + +2011-04-18 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Finish implementing delayed sync replies in the CoreIPC message generator + https://bugs.webkit.org/show_bug.cgi?id=58814 + + Put the DelayedReply function definitions in the .cpp file and fix bugs found by + actually trying to compile the generated files. + + * Scripts/webkit2/messages.py: + * Scripts/webkit2/messages_unittest.py: + +2011-04-18 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Reproducible crash in Find on Page, on pages that use accelerated compositing + https://bugs.webkit.org/show_bug.cgi?id=58793 + <rdar://problem/9295870> + + Move the call to PageOverlay::setNeedsDisplay() back to WebPage::installPageOverlay; + it needs to be called after we've told the drawing area that a page overlay has been installed. + + * WebProcess/WebPage/PageOverlay.cpp: + (WebKit::PageOverlay::setPage): + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::installPageOverlay): + +2011-04-18 Jeff Miller <jeffm@apple.com> + + Reviewed by Timothy Hatcher. + + WKFrameLoadState should be a uint32_t to match our API conventions + https://bugs.webkit.org/show_bug.cgi?id=58785 + + * UIProcess/API/C/WKFrame.h: typedef WKFrameLoadState as a uint32_t and define its values as an anonymous enum. + +2011-04-18 Carlos Garcia Campos <cgarcia@igalia.com> + + Unreviewed. Fix WebKit2 GTK build after 84017. + + * GNUmakefile.am: + * Shared/NativeWebMouseEvent.h: + (WebKit::NativeWebMouseEvent::nativeEvent): + * Shared/gtk/NativeWebMouseEventGtk.cpp: Copied from Source/WebKit2/Shared/NativeWebMouseEvent.h. + (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): + * UIProcess/gtk/WebView.cpp: + (WebKit::WebView::handleMouseEvent): + +2011-04-17 David Kilzer <ddkilzer@apple.com> + + <http://webkit.org/b/58463> Switch HTTP pipelining from user default to private setting + <rdar://problem/9268729> + + Reviewed by Dan Bernstein. + + This replaces support for the WebKitEnableHTTPPipelining user + default with methods on the WebCore::ResourceRequest class in + WebCore, the WebView class in WebKit1, and the WebContext class + in WebKit2. It also removes support for the + WebKitForceHTTPPipeliningPriorityHigh user default which was not + needed. + + * UIProcess/API/C/WKContext.cpp: + (_WKContextSetHTTPPipeliningEnabled): Added. + * UIProcess/API/C/WKContextPrivate.h: + (_WKContextSetHTTPPipeliningEnabled): Added declaration. + * UIProcess/WebContext.cpp: + (WebKit::WebContext::setHTTPPipeliningEnabled): Added. + (WebKit::WebContext::httpPipeliningEnabled): Added. + * UIProcess/WebContext.h: + (WebKit::WebContext::setHTTPPipeliningEnabled): Added declaration. + (WebKit::WebContext::httpPipeliningEnabled): Added declaration. + +2011-04-17 Sam Weinig <sam@webkit.org> + + Reviewed by Geoffrey Garen. + + Make more strings in WebKit2 localizable + https://bugs.webkit.org/show_bug.cgi?id=58757 + + * UIProcess/API/mac/PDFViewController.mm: + (-[WKPDFView menuForEvent:]): + * UIProcess/API/mac/PageClientImpl.mm: + (WebKit::PageClientImpl::setViewportArguments): + (WebKit::PageClientImpl::registerEditCommand): + * UIProcess/WebEditCommandProxy.cpp: + (WebKit::WebEditCommandProxy::nameForEditAction): + * UIProcess/WebEditCommandProxy.h: + Use WebCore's localization macro to make more strings localizable. + +2011-04-17 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Barth. + + Rename PLATFORM(CA) to USE(CA) + https://bugs.webkit.org/show_bug.cgi?id=58742 + + * WebProcess/WebPage/LayerTreeHost.cpp: + * WebProcess/WebPage/win/LayerTreeHostWin.cpp: + (WebKit::LayerTreeHost::supportsAcceleratedCompositing): + +2011-04-17 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Barth. + + Rename PLATFORM(CG) to USE(CG) + https://bugs.webkit.org/show_bug.cgi?id=58729 + + * Shared/ShareableBitmap.h: + * Shared/WebCoreArgumentCoders.cpp: + * Shared/WebCoreArgumentCoders.h: + * Shared/WebGraphicsContext.cpp: + (WebKit::WebGraphicsContext::WebGraphicsContext): + * Shared/WebGraphicsContext.h: + * Shared/win/PlatformCertificateInfo.cpp: + (WebKit::PlatformCertificateInfo::PlatformCertificateInfo): + * UIProcess/win/WebView.cpp: + (WebKit::WebView::setFindIndicator): + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::drawRectToPDF): + (WebKit::WebPage::drawPagesToPDF): + * WebProcess/WebPage/win/WebPageWin.cpp: + (WebKit::WebPage::platformPreferencesDidChange): + * config.h: + +2011-04-16 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Crash when NPP_Write returns -1 when writing the manual stream + https://bugs.webkit.org/show_bug.cgi?id=58735 + <rdar://problem/9124993> + + If NPP_Write returns -1 we must cancel the stream. + + * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: + (WebKit::NetscapePluginStream::deliverDataToPlugin): + +2011-04-16 Sam Weinig <sam@webkit.org> + + Reviewed by Simon Fraser. + + Pages in the PageCache don't have the correct visited link coloring after being restored + https://bugs.webkit.org/show_bug.cgi?id=58721 + + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::visitedLinkStateChanged): + (WebKit::WebProcess::allVisitedLinkStateChanged): + Mark all pages in the page cache as needing visited link style recalc + whenever visited link information changes. + +2011-04-15 Daniel Bates <dbates@webkit.org> + + Attempt to fix the Qt Linux Release build after changeset 84064 <http://trac.webkit.org/changeset/84064> + (https://bugs.webkit.org/show_bug.cgi?id=58686). + + * UIProcess/API/qt/qwkpage_p.h: Remove takeFocus(). + +2011-04-15 Shishir Agrawal <shishir@chromium.org> + + Reviewed by James Robinson. + + Add a flag to guard Page Visibility API changes. + https://bugs.webkit.org/show_bug.cgi?id=58464 + + * Configurations/FeatureDefines.xcconfig: + +2011-04-15 Jeff Miller <jeffm@apple.com> + + Reviewed by Sam Weinig. + + Add takeFocus callback to WKPageUIClient + https://bugs.webkit.org/show_bug.cgi?id=58686 + + On Windows, we need to handle moving focus out of the web view in the client, so add a takeFocus callback to WKPageUIClient + and stop handling taking focus in the framework in WKView.mm on the Mac. + + * UIProcess/API/C/WKPage.h: Added WKFocusDirection enum and takeFocus to WKPageUIClient. + * UIProcess/API/mac/PageClientImpl.h: Removed takeFocus(). + * UIProcess/API/mac/PageClientImpl.mm: Removed takeFocus(). + * UIProcess/API/mac/WKView.mm: Removed _takeFocus(). + * UIProcess/API/mac/WKViewInternal.h: Removed _takeFocus(). + * UIProcess/API/qt/ClientImpl.cpp: + (qt_wk_takeFocus): Added. + * UIProcess/API/qt/ClientImpl.h: Added qt_wk_takeFocus. + * UIProcess/API/qt/qwkpage.cpp: Remove takeFocus(). + (QWKPage::QWKPage): Added takeFocus() callback. + * UIProcess/PageClient.h: Removed takeFocus(). + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::takeFocus): Call m_uiClient to take focus. + * UIProcess/WebPageProxy.h: Pass FocusDirection as a uint32_t to takeFocus(). + * UIProcess/WebPageProxy.messages.in: Pass FocusDirection as a uint32_t in TakeFocus message. + * UIProcess/WebUIClient.cpp: + (WebKit::WebUIClient::takeFocus): Added. + * UIProcess/WebUIClient.h: Added takeFocus(). + * UIProcess/win/WebView.cpp: Removed takeFocus(), which was never implemented on Windows. + * UIProcess/win/WebView.h: Removed takeFocus(). + * WebProcess/WebCoreSupport/WebChromeClient.cpp: + (WebKit::WebChromeClient::takeFocus): Pass FocusDirection as a uint32_t in TakeFocus message. + +2011-04-15 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Sam Weinig. + + WebKit2: Stop using deprecated NSInputManager + https://bugs.webkit.org/show_bug.cgi?id=58709 + + Changed all mouse related functions to give NSInputContext a chance to handle the event, + added logging. Removed -rightMouseMoved: method, which was added by accident. + + * UIProcess/API/mac/WKView.mm: + (-[WKView mouseMoved:]): + (-[WKView mouseDown:]): + (-[WKView mouseUp:]): + (-[WKView mouseDragged:]): + +2011-04-15 Jon Honeycutt <jhoneycutt@apple.com> + + Potential crash getting a JS wrapper. + + <rdar://problem/8988741> + + Reviewed by Brian Weinstein. + + * WebProcess/WebPage/WebFrame.cpp: + (WebKit::WebFrame::jsWrapperForWorld): + Ensure that we have a valid m_coreFrame, because it can be cleared by + invalidate(). + +2011-04-08 Luiz Agostini <luiz.agostini@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] QWebPage MIME type handling inconsistency with other web browsers + https://bugs.webkit.org/show_bug.cgi?id=46968 + + Implementing mime type sniffing based on + http://tools.ietf.org/html/draft-abarth-mime-sniff-06. + + * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp: + (WebCore::WebFrameNetworkingContext::WebFrameNetworkingContext): + (WebCore::WebFrameNetworkingContext::MIMESniffingEnabled): + * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h: + +2011-04-15 Oliver Hunt <oliver@apple.com> + + GC allocate Structure + https://bugs.webkit.org/show_bug.cgi?id=58483 + + Rolling r83894 r83827 r83810 r83809 r83808 back in with + a workaround for the gcc bug seen by the gtk bots + + * WebProcess/Plugins/Netscape/JSNPMethod.h: + (WebKit::JSNPMethod::createStructure): + * WebProcess/Plugins/Netscape/JSNPObject.h: + (WebKit::JSNPObject::createStructure): + +2011-04-15 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Add API to get the bundle page overlay fade in fraction. + + * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: + (WKBundlePageOverlayFractionFadedIn): + * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h: + +2011-04-15 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Fade the find page overlay + https://bugs.webkit.org/show_bug.cgi?id=58697 + + * WebProcess/WebPage/FindController.cpp: + Make the color components floats. + + (WebKit::overlayBackgroundColor): + (WebKit::holeShadowColor): + (WebKit::holeFillColor): + Add helper functions for returning the colors given the fraction faded in. + + (WebKit::FindController::drawRect): + Use the new helper functions. + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::installPageOverlay): + Start the fade animation unless we're replacing an already existing page overlay + with another. + +2011-04-15 Anders Carlsson <andersca@apple.com> + + Fix Windows build. + + * WebProcess/WebPage/PageOverlay.cpp: + (WebKit::PageOverlay::fadeAnimationTimerFired): + +2011-04-15 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Add the ability for PageOverlays to fade in and out + https://bugs.webkit.org/show_bug.cgi?id=58694 + + * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: + (WKBundlePageUninstallPageOverlay): + WebPage::uninstallPageOverlay now takes a boolean. Default to false for now. + + * WebProcess/WebPage/FindController.cpp: + (WebKit::FindController::findString): + Pass false to uninstallPageOverlay. + + (WebKit::FindController::hideFindUI): + Pass true to uninstallPageOverlay. + + * WebProcess/WebPage/PageOverlay.cpp: + (WebKit::PageOverlay::PageOverlay): + Initialize new member variables. + + (WebKit::PageOverlay::bounds): + Get rid of an unnecessary webPage() getter. + + (WebKit::PageOverlay::setPage): + Stop the animation timer. + + (WebKit::PageOverlay::startFadeInAnimation): + Update m_fractionFadedIn and call startFadeAnimation. + + (WebKit::PageOverlay::startFadeOutAnimation): + Ditto. + + (WebKit::PageOverlay::startFadeAnimation): + Initialize m_fadeAnimationStartTime and start the fade animation timer. + + (WebKit::PageOverlay::fadeAnimationTimerFired): + Update m_fractionFadedIn and call setNeedsDisplay(). + + * WebProcess/WebPage/PageOverlay.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::uninstallPageOverlay): + If fadeOut is true, tell the page overlay to start the fade out animation. + When the fade animation is complete, the page overlay will uninstall itself. + +2011-04-15 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Adam Roben. + + Views should be made visible before painting in WM_PRINTCLIENT messages + https://bugs.webkit.org/show_bug.cgi?id=58676 + <rdar://problem/9279211> + + * UIProcess/win/WebView.cpp: + (WebKit::WebView::onPrintClientEvent): If our view isn't currently visible set it to visible + before painting, then reset it back to not visible after painting. + (WebKit::WebView::onShowWindowEvent): Call setIsVisible instead of duplicating logic. + (WebKit::WebView::setIsVisible): Set the m_isVisible flag and call viewStateDidChange. + * UIProcess/win/WebView.h: + +2011-04-15 Jon Lee <jonlee@apple.com> + + Reviewed by Anders Carlsson. + + onClick does not function with <select> elements in WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=57904 + <rdar://problem/9217757> + + Reviewed by Anders Carlsson. + + * Shared/NativeWebMouseEvent.h: Copied from Source/WebKit2/UIProcess/WebPopupMenuProxy.h. + (WebKit::NativeWebMouseEvent::nativeEvent): + * Shared/mac/NativeWebMouseEventMac.mm: Added. + (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): + * Shared/qt/NativeWebMouseEventQt.cpp: Copied from Source/WebKit2/UIProcess/WebPopupMenuProxy.h. + (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): + * Shared/win/NativeWebMouseEventWin.cpp: Copied from Source/WebKit2/UIProcess/WebPopupMenuProxy.h. + (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): + * UIProcess/API/mac/WKView.mm: + (-[WKView mouseMoved:]): + (-[WKView _mouseHandler:]): Pre-compiler mouse handler calls need to use the new NativeWebMouseEvent class + * UIProcess/API/qt/qwkpage.cpp: + (QWKPagePrivate::mouseMoveEvent): + (QWKPagePrivate::mousePressEvent): + (QWKPagePrivate::mouseReleaseEvent): + (QWKPagePrivate::mouseDoubleClickEvent): + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::handleMouseEvent): keep track of mouse down event in order to be able to send a fake mouse up event on the select element + (WebKit::WebPageProxy::currentMouseDownEvent): for access by the popup menu proxy to dispatch the fake mouse up event + (WebKit::WebPageProxy::didReceiveEvent): clear out the cached mouse down event + (WebKit::WebPageProxy::processDidCrash): clear out the cached events since we assume that didReceiveEvent did not called prior to the crash + * UIProcess/WebPageProxy.h: + * UIProcess/WebPopupMenuProxy.h: + * UIProcess/mac/WebPopupMenuProxyMac.mm: + (WebKit::WebPopupMenuProxyMac::showPopupMenu): after notifying the popup menu client that the value changed, fake mouse up and mouse move events are posted + * UIProcess/win/WebPopupMenuProxyWin.cpp: + (WebKit::WebPopupMenuProxyWin::showPopupMenu): after notifying the popup menu client that the value changed, fake mouse up and mouse move events are posted + * UIProcess/win/WebView.cpp: + (WebKit::WebView::onMouseEvent): + * WebKit2.pro: + * WebKit2.xcodeproj/project.pbxproj: + * win/WebKit2.vcproj: + +2011-04-15 Alexey Proskuryakov <ap@apple.com> + + Qt build fix. + + * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::selectionStateChanged): Wrap the variable + in PLATFORM(MAC), too, as it's unused on other platforms. + +2011-04-15 Brady Eidson <beidson@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/9287880> and https://bugs.webkit.org/show_bug.cgi?id=58596 + WK2: Past searches not remembered for <input type=search results="5" autosave="foo"> + + Add SaveRecentSearches and LoadRecentSearches messages: + * UIProcess/WebPageProxy.messages.in: + * UIProcess/WebPageProxy.h: + + Message up to the UIProcess for the save/load operations: + * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: + (WebKit::WebSearchPopupMenu::saveRecentSearches): + (WebKit::WebSearchPopupMenu::loadRecentSearches): + * WebProcess/WebCoreSupport/WebPopupMenu.h: + (WebKit::WebPopupMenu::page): + + Save the values to disk CFPreference-style: + * UIProcess/cf/WebPageProxyCF.cpp: + (WebKit::autosaveKey): + (WebKit::WebPageProxy::saveRecentSearches): + (WebKit::WebPageProxy::loadRecentSearches): + + Stubbed out for non-CF platforms: + * UIProcess/gtk/WebPageProxyGtk.cpp: + (WebKit::WebPageProxy::saveRecentSearches): + (WebKit::WebPageProxy::loadRecentSearches): + * UIProcess/qt/WebPageProxyQt.cpp: + (WebKit::WebPageProxy::saveRecentSearches): + (WebKit::WebPageProxy::loadRecentSearches): + +2011-04-14 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Dan Bernstein. + + WebKit2: Password field input does not switch to ASCII-compatible source + https://bugs.webkit.org/show_bug.cgi?id=58583 + <rdar://problem/9059651> + + The implementation is more modern than what we have in WK1. Instead of returning a null + input context (as in non-editable content), we now set page context's properties. + + * UIProcess/PageClient.h: + * UIProcess/API/mac/PageClientImpl.h: + * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::updateSecureInputState): + Forward updateSecureInputState() call from WebPageProxy to WKView. + + * UIProcess/API/mac/WKView.mm: + (-[WKView dealloc]): ASSERT that we didn't somehow leave secure input events enabled. + (-[WKView becomeFirstResponder]): Update secure event mode. + (-[WKView resignFirstResponder]): Disable secure event mode. + (-[WKView setMarkedText:selectedRange:replacementRange:]): Prevent most advanced editing + behaviors in password fields, matching NSSecureTextInputField. + (-[WKView attributedSubstringForProposedRange:actualRange:]): Disable TSM Document Access + in password fields. There is also a check in web process, but it doest't hurt to check twice. + (-[WKView _windowDidBecomeKey:]): Call _updateSecureInputState. + (-[WKView _windowDidResignKey:]): Call _updateSecureInputState. + (-[WKView _updateSecureInputState]): Update secure event mode and allowed input sources. + + * UIProcess/API/mac/WKViewInternal.h: Added _updateSecureInputState. + + * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::selectionStateChanged): Update secure + input state when going in or out a password field. + +2011-04-14 Jer Noble <jer.noble@apple.com> + + Reviewed by Eric Carlson. + + REGRESSION: Rendering in <video> element appears to render quickly to catch up if it has been playing in a background tab + https://bugs.webkit.org/show_bug.cgi?id=58637 + + Notify AVFoundation that no one will be rendering when the view or window moves off screen. + + * UIProcess/API/mac/PageClientImpl.mm: + (WebKit::PageClientImpl::isViewVisible): Return false if the view's window is not visible. + * UIProcess/API/mac/WKView.mm: + (-[WKView addWindowObserversForWindow:]): Observe orderOut and orderIn events. + (-[WKView removeWindowObservers]): Ditto. + (-[WKView _windowDidOrderOffScreen:]): Added. + (-[WKView _windowDidOrderOnScreen:]): Added. + * WebProcess/WebPage/DrawingAreaImpl.cpp: + (WebKit::DrawingAreaImpl::suspendPainting): Call LayerTreeHost::pauseRendering. + (WebKit::DrawingAreaImpl::resumePainting): Call LayerTreeHost::resumeRendering. + * WebProcess/WebPage/LayerTreeHost.h: + (WebKit::LayerTreeHost::pauseRendering): Added stub. + (WebKit::LayerTreeHost::resumeRendering): Added stub. + * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h: + * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm: + (WebKit::LayerTreeHostCAMac::pauseRendering): Added. Post a notification with our + intention to stop rendering. + (WebKit::LayerTreeHostCAMac::resumeRendering): Added. Post a notification with our + intention to start rendering. + +2011-04-15 Jessie Berlin <jberlin@apple.com> + + Reviewed by Sam Weinig. + + WebKit2: Need a way to keep the WebProcess alive for testing purposes. + https://bugs.webkit.org/show_bug.cgi?id=58592 + + * UIProcess/API/C/WKContext.cpp: + (WKContextDisableProcessTermination): + (WKContextEnableProcessTermination): + * UIProcess/API/C/WKContextPrivate.h: + + * UIProcess/WebContext.cpp: + (WebKit::WebContext::WebContext): + Initialize m_processTerminationEnabled to true. + (WebKit::WebContext::enableProcessTermination): + Set m_processTerminationEnabled to true, and try to terminate the web process. + (WebKit::WebContext::shouldTerminate): + If !m_processTerminationEnabled, return false. + * UIProcess/WebContext.h: + (WebKit::WebContext::disableProcessTermination): + Set m_processTerminationEnabled to false; + +2011-04-15 Nancy Piedra <nancy.piedra@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt][Symbian] Need to export ViewportAttributes class + https://bugs.webkit.org/show_bug.cgi?id=58651 + + On Symbian, if the ViewportAttributes class is not exported we get + linking errors. + + Since this is a compilation issue, no new tests added. + + * UIProcess/API/qt/qwkpage.h: + +2011-04-15 Anna Cavender <annacc@chromium.org> + + Reviewed by Eric Carlson. + + Renaming TRACK feature define to VIDEO_TRACK + https://bugs.webkit.org/show_bug.cgi?id=53556 + + * Configurations/FeatureDefines.xcconfig: + +2011-04-14 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Select All context menu item doesn't work in Flash + https://bugs.webkit.org/show_bug.cgi?id=58615 + <rdar://problem/9225761> + + In some cases, -[NSWindow isKeyWindow] will return false even if + a window is the key window, so we have to compare our window + against -[NSApplication keyWindow]. + + * UIProcess/API/mac/PageClientImpl.mm: + (WebKit::PageClientImpl::isViewWindowActive): + +2011-04-14 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Add CFPreference based backend for WebKit2 preferences + https://bugs.webkit.org/show_bug.cgi?id=58605 + + * UIProcess/cf/WebPreferencesCF.cpp: + (WebKit::cfStringFromWebCoreString): + (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): + Implement platform functions using CFPreferences API. + +2011-04-14 Brady Eidson <beidson@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/8665102> and https://bugs.webkit.org/show_bug.cgi?id=58595 + Menu is not displayed for <input type=search results="5"> + + * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: + (WebKit::WebSearchPopupMenu::enabled): Return true, like all good search popup menus should. + + * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm: + (WebKit::WebPopupMenu::setUpPlatformData): Remember the shouldPopOver-ness. + + * Shared/PlatformPopupMenuData.cpp: + (WebKit::PlatformPopupMenuData::encode): Remember the shouldPopOver-ness. + (WebKit::PlatformPopupMenuData::decode): Remember the shouldPopOver-ness. + * Shared/PlatformPopupMenuData.h: + + * UIProcess/mac/WebPopupMenuProxyMac.mm: + (WebKit::WebPopupMenuProxyMac::showPopupMenu): Use the shouldPopOver-ness to adjust display position. + +2011-04-14 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Crash in NetscapePluginModule::tryGetSitesWithData when NPP_GetSitesWithData returns null + https://bugs.webkit.org/show_bug.cgi?id=58578 + <rdar://problem/9275201> + + It's OK for NPP_GetSitesWithData to return null. + + * Shared/Plugins/Netscape/NetscapePluginModule.cpp: + (WebKit::NetscapePluginModule::tryGetSitesWithData): + +2011-04-14 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Make creating WebPreferences lazy + https://bugs.webkit.org/show_bug.cgi?id=58570 + + * UIProcess/WebPageGroup.cpp: + (WebKit::WebPageGroup::WebPageGroup): + (WebKit::WebPageGroup::~WebPageGroup): + (WebKit::WebPageGroup::setPreferences): + (WebKit::WebPageGroup::preferences): + * UIProcess/WebPageGroup.h: + Don't create the WebPreference object until it is requested. + +2011-04-14 Pratik Solanki <psolanki@apple.com> + + Reviewed by David Kilzer. + + Set minimum priority for fast lane connections + https://bugs.webkit.org/show_bug.cgi?id=58353 + + * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: + (InitWebCoreSystemInterface): Support for new WKSI method WKSetHTTPPipeliningMinimumFastLanePriority. + +2011-04-14 Anders Carlsson <andersca@apple.com> + + Clang warning fixes. + + * UIProcess/API/mac/PageClientImpl.h: + * UIProcess/mac/TextCheckerMac.mm: + * WebProcess/Downloads/mac/DownloadMac.mm: + +2011-04-14 Jessie Berlin <jberlin@apple.com> + + Reviewed by Timothy Hatcher. + + WebKit2: Add an option for a PageGroup to be invisible to the History Client. + https://bugs.webkit.org/show_bug.cgi?id=58547 + + * Shared/WebPageGroupData.cpp: + (WebKit::WebPageGroupData::encode): + (WebKit::WebPageGroupData::decode): + * Shared/WebPageGroupData.h: + + * UIProcess/WebInspectorProxy.cpp: + (WebKit::WebInspectorProxy::inspectorPageGroup): + The Web Inspector should not be visible to the History Client, because its HTML-based nature + should not be exposed through the API. + + * UIProcess/WebPageGroup.cpp: + (WebKit::WebPageGroup::create): + (WebKit::WebPageGroup::WebPageGroup): + * UIProcess/WebPageGroup.h: + + * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: + (WebKit::WebFrameLoaderClient::updateGlobalHistory): + Do not send the message to the WebContent for the history client. + (WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks): + Ditto. + (WebKit::WebFrameLoaderClient::setTitle): + Ditto. + + * WebProcess/WebPage/WebPageGroupProxy.h: + (WebKit::WebPageGroupProxy::isVisibleToHistoryClient): + +2011-04-14 Balazs Kelemen <kbalazs@webkit.org> + + Reviewed by Andreas Kling. + + [Qt][WK2] Make Qt port compiling with ENABLE_PLUGIN_PROCESS=1 + https://bugs.webkit.org/show_bug.cgi?id=55719 + + Guard functionality related to complex text and implementations + that rely on MachPort with PLATFORM(MAC). + Based on Oleg Romashin's patch. + + * PluginProcess/PluginControllerProxy.cpp: + * PluginProcess/PluginControllerProxy.messages.in: + * PluginProcess/PluginProcess.cpp: + (WebKit::PluginProcess::createWebProcessConnection): + * PluginProcess/WebProcessConnection.cpp: + (WebKit::WebProcessConnection::createPlugin): + * Shared/Plugins/PluginProcessCreationParameters.cpp: + (WebKit::PluginProcessCreationParameters::decode): Fix bad C++ that + does not compile with gcc-linux. + * UIProcess/Plugins/PluginProcessProxy.cpp: + (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): + (WebKit::PluginProcessProxy::didCreateWebProcessConnection): + * UIProcess/Plugins/PluginProcessProxy.h: + * UIProcess/Plugins/PluginProcessProxy.messages.in: + * WebKit2.pro: Move implementation that does not need external + visibility from WebKit2API.pri. Adding the headers as well. + * WebKit2API.pri: + * WebProcess/Plugins/PluginProcessConnectionManager.cpp: + (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): + * WebProcess/WebPage/WebPage.cpp: + +2011-04-13 James Robinson <jamesr@chromium.org> + + Reviewed by Simon Fraser. + + Allow setting composited backing stores for scrollbars and scroll corners + https://bugs.webkit.org/show_bug.cgi?id=57202 + + Update WebPopupMenuProxyWin to reflect ScrollableArea interface changes. + + * UIProcess/win/WebPopupMenuProxyWin.h: + (WebKit::WebPopupMenuProxyWin::invalidateScrollCornerRect): + (WebKit::WebPopupMenuProxyWin::scrollCornerPresent): + (WebKit::WebPopupMenuProxyWin::scrollCornerRect): + +2011-04-13 Jon Lee <jonlee@apple.com> + + Reviewed by Maciej Stachowiak. + + REGRESSION(r81880): Paste menu is disabled for many edit fields (yahoo and google search, yahoo mail msg, forms, etc) + https://bugs.webkit.org/show_bug.cgi?id=58284 + <rdar://problem/9246149> + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::setFocused): Check for whether we are not supposed to be focused AND whether our platform behavior dictates to clear out the selection + +2011-04-13 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + Fixed a bug where WKView changed the cursor when the mouse was moving over other views. + + * UIProcess/API/mac/WKView.mm: + (-[WKView mouseMoved:]): If getting this message because this view is the first responder, + ignore it unless it is inside the visible rect. + +2011-04-13 Enrica Casucci <enrica@apple.com> + + Reviewed by Dan Bernstein. + + Should not rely on WKEditableLinkBehavior being in synch + with WebCore::EditableLinkBehavior. + https://bugs.webkit.org/show_bug.cgi?id=58473 + + Adding conversion routines. + + * UIProcess/API/C/WKAPICast.h: + (WebKit::toAPI): + (WebKit::toEditableLinkBehavior): + * UIProcess/API/C/WKPreferences.cpp: + (WKPreferencesSetEditableLinkBehavior): + (WKPreferencesGetEditableLinkBehavior): + +2011-04-13 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + After closing the last window, re-opening my last visited website is over 2X slower + https://bugs.webkit.org/show_bug.cgi?id=58488 + <rdar://problem/9233518> + + Give the web process a 60 second termination timeout. + + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::WebProcess): + +2011-04-13 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Convert WebProcess over to using disableTermination/enableTermination + https://bugs.webkit.org/show_bug.cgi?id=58485 + + * PluginProcess/PluginProcess.cpp: + (WebKit::PluginProcess::getSitesWithData): + (WebKit::PluginProcess::clearSiteData): + Use the LocalTerminationDisabler RAII class. + + * Shared/ChildProcess.h: + (WebKit::ChildProcess::LocalTerminationDisabler::LocalTerminationDisabler): + (WebKit::ChildProcess::LocalTerminationDisabler::~LocalTerminationDisabler): + Add RAII class for calling disableTermination/enableTermination. + + * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp: + (WebKit::WebApplicationCacheManager::getApplicationCacheOrigins): + (WebKit::WebApplicationCacheManager::deleteEntriesForOrigin): + (WebKit::WebApplicationCacheManager::deleteAllEntries): + Use the LocalTerminationDisabler RAII class. + + * WebProcess/Cookies/WebCookieManager.cpp: + (WebKit::WebCookieManager::getHostnamesWithCookies): + (WebKit::WebCookieManager::deleteCookiesForHostname): + (WebKit::WebCookieManager::deleteAllCookies): + (WebKit::WebCookieManager::startObservingCookieChanges): + (WebKit::WebCookieManager::setHTTPCookieAcceptPolicy): + (WebKit::WebCookieManager::getHTTPCookieAcceptPolicy): + Use the LocalTerminationDisabler RAII class. + + * WebProcess/Downloads/Download.cpp: + (WebKit::Download::Download): + Call disableTermination(). + + (WebKit::Download::~Download): + Call enableTermination(). + + * WebProcess/Downloads/DownloadManager.cpp: + (WebKit::DownloadManager::downloadFinished): + Remove call to terminateIfPossible. + + * WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp: + (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins): + (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin): + (WebKit::WebKeyValueStorageManager::deleteAllEntries): + Use the LocalTerminationDisabler RAII class. + + * WebProcess/MediaCache/WebMediaCacheManager.cpp: + (WebKit::WebMediaCacheManager::getHostnamesWithMediaCache): + (WebKit::WebMediaCacheManager::clearCacheForHostname): + (WebKit::WebMediaCacheManager::clearCacheForAllHostnames): + Use the LocalTerminationDisabler RAII class. + + * WebProcess/ResourceCache/WebResourceCacheManager.cpp: + (WebKit::WebResourceCacheManager::getCacheOrigins): + (WebKit::WebResourceCacheManager::clearCacheForOrigin): + (WebKit::WebResourceCacheManager::clearCacheForAllOrigins): + Use the LocalTerminationDisabler RAII class. + + * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: + (WebKit::WebDatabaseManager::getDatabasesByOrigin): + (WebKit::WebDatabaseManager::getDatabaseOrigins): + (WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin): + (WebKit::WebDatabaseManager::deleteDatabasesForOrigin): + (WebKit::WebDatabaseManager::deleteAllDatabases): + (WebKit::WebDatabaseManager::setQuotaForOrigin): + Use the LocalTerminationDisabler RAII class. + + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::createWebPage): + Call disableTermination(). + + (WebKit::WebProcess::removeWebPage): + Call enableTermination(). + + (WebKit::WebProcess::shouldTerminate): + Move logic from terminateIfPossible over here. + + (WebKit::WebProcess::terminate): + Move logic from terminateIfPossible over here. + + (WebKit::WebProcess::getSitesWithPluginData): + (WebKit::WebProcess::clearPluginSiteData): + Use the LocalTerminationDisabler RAII class. + + * WebProcess/WebProcess.h: + Publically inherit from ChildProcess, LocalTerminationDisabler needs to be accessible + from the WebProcess class. + +2011-04-13 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Follow-up to: WebKit2 will load two copies of the same plugin, but should not + https://bugs.webkit.org/show_bug.cgi?id=49075 + + Use pathGetFileName instead of Win32 PathFindFileNameW. + + * UIProcess/Plugins/win/PluginInfoStoreWin.cpp: + (WebKit::PluginInfoStore::shouldUsePlugin): + +2011-04-13 Sam Weinig <sam@webkit.org> + + Reviewed by Gavin Barraclough. + + WebKit2 doesn't keep overlay scrollers shown while scroll gesture held + <rdar://problem/9260518> + + * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: + (InitWebCoreSystemInterface): + Initialize new WKSI functions. + +2011-04-13 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Oliver Hunt. + + WebKit2 will load two copies of the same plugin, but should not + https://bugs.webkit.org/show_bug.cgi?id=49075 + <rdar://problem/8635947> + + * UIProcess/Plugins/win/PluginInfoStoreWin.cpp: + (WebKit::PluginInfoStore::shouldUsePlugin): Don't use a plug-in if we've already allowed a plug-in with the same filename. + +2011-04-13 Timothy Hatcher <timothy@apple.com> + + Hide the dictionary panel when navigating or crashing. + + <rdar://problem/9261202> + + Reviewed by Sam Weinig. + + * UIProcess/API/mac/PageClientImpl.h: + * UIProcess/API/mac/PageClientImpl.mm: + (WebKit::PageClientImpl::dismissDictionaryLookupPanel): Added. Call WKHideWordDefinitionWindow. + * UIProcess/PageClient.h: + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::didCommitLoadForFrame): Call PageClient::dismissDictionaryLookupPanel. + (WebKit::WebPageProxy::processDidCrash): Call dismissCorrectionPanel and PageClient::dismissDictionaryLookupPanel. + +2011-04-13 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Add support for disabling/enabling termination to ChildProcess + https://bugs.webkit.org/show_bug.cgi?id=58476 + + Add ChildProcess::disableTermination and ChildProcess::enableTermination and convert + the PluginProcess class over to using them. + + * PluginProcess/PluginProcess.cpp: + (WebKit::PluginProcess::PluginProcess): + The child process now takes a terminationTimeout argument. Get rid of the shutdown timer. + + (WebKit::PluginProcess::removeWebProcessConnection): + Call enableTermination(). + + (WebKit::PluginProcess::shouldTerminate): + Always return true. + + (WebKit::PluginProcess::createWebProcessConnection): + Call disableTermination(). + + (WebKit::PluginProcess::getSitesWithData): + Call disableTermination()/enableTermination(). + + (WebKit::PluginProcess::clearSiteData): + Ditto. + + * Shared/ChildProcess.cpp: + (WebKit::ChildProcess::disableTermination): + Increment the counter and stop the timer. + + (WebKit::ChildProcess::enableTermination): + Decrement the counter; if it's zero, start the timer. + + (WebKit::ChildProcess::terminationTimerFired): + Call shouldTerminate(). If it returns true, call terminate(). + + (WebKit::ChildProcess::terminate): + Call RunLoop::quit(). + + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::WebProcess): + Just initialize the termination timeout to 0 for now. + + (WebKit::WebProcess::shouldTerminate): + Always return true; this isn't used yet. + + * WebProcess/WebProcess.h: + +2011-04-13 Enrica Casucci <enrica@apple.com> + + Reviewed by Dan Bernstein. + + REGRESSION: Links are clickable when a contentEditable is set to true. + https://bugs.webkit.org/show_bug.cgi?id=58473 + <rdar://problem/9256793> + + Added support for editable link behavior property. + + * Shared/WebPreferencesStore.cpp: + * Shared/WebPreferencesStore.h: + * UIProcess/API/C/WKPreferences.cpp: + (WKPreferencesSetEditableLinkBehavior): + (WKPreferencesGetEditableLinkBehavior): + * UIProcess/API/C/WKPreferencesPrivate.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): + +2011-04-12 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Oliver Hunt. + + REGRESSION (WebKit2): Input methods are active in non-editable content + https://bugs.webkit.org/show_bug.cgi?id=58404 + <rdar://problem/9275940> + + * UIProcess/API/mac/WKView.mm: + (-[WKView insertText:]): Re-add the old variant of this function, because it's not only part + of deprecated NSTextInput protocol, but it's also part of NSResponder, and it's called when + the input context in nil. + (-[WKView inputContext]): Return nil when not in editable content. + +2011-04-12 Brady Eidson <beidson@apple.com> + + Reviewed by Maciej Stachowiak. + + <rdar://problem/9029193> and https://bugs.webkit.org/show_bug.cgi?id=58406 + Bringing up the context menu on a link might also follow the link. + + This patch adds a flag that is set just before the WebProcess tells the UIProcess to show a context menu. + + As long as this flag is set, the WebProcess will ignore any other mouse events that might have queued up + by the time the UIProcess gets around to showing the menu. + + After the UIProcess is done showing the menu, it messages back telling the WebProcess to clear the flag + and resume normal MouseEvent handling. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::showContextMenu): No matter what internalShowContextMenu does, always notify + the WebProcess that any context menu is now hidden. + (WebKit::WebPageProxy::internalShowContextMenu): + * UIProcess/WebPageProxy.h: + + * WebProcess/WebPage/WebContextMenu.cpp: + (WebKit::WebContextMenu::show): Since we're telling the UIProcess to show the menu, tell the WebPage a + context menu is showing so it will stop handling mouse events. + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::WebPage): + (WebKit::WebPage::mouseEvent): Don't try to handle mouse events if a context menu is flagged as showing. + + Add accessors to twiddle the "context menu showing" flag: + * WebProcess/WebPage/WebPage.h: + (WebKit::WebPage::contextMenuShowing): + (WebKit::WebPage::contextMenuHidden): + * WebProcess/WebPage/WebPage.messages.in: Add the ContextMenuHidden message. + +2011-04-12 Sam Weinig <sam@webkit.org> + + Reviewed by Maciej Stachowiak. + + Quarantine related sandbox denial when downloading files + <rdar://problem/9203736> + + * WebProcess/com.apple.WebProcess.sb: + +2011-04-12 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Sandbox violations dragging an image to the desktop. + <rdar://problem/9261834> + + * WebProcess/com.apple.WebProcess.sb: + +2011-04-12 Sam Weinig <sam@webkit.org> + + Reviewed by Cameron Zwarich. + + Sandbox violations trying to access ~/Library/Keyboard Layouts and ~/Library/Input Methods + <rdar://problem/8973159> + + * WebProcess/com.apple.WebProcess.sb: + +2011-04-12 Enrica Casucci <enrica@apple.com> + + Reviewed by Alexey Proskuryakov and Sam Weinig. + + Implement non-activating clicks to allow dragging out of a background window. + https://bugs.webkit.org/show_bug.cgi?id=55053 + <rdar://problem/9042197> + + Added methods to WKView to support non activating click. Unfortunately both + methods require a synchronous call to the WebProcess to decide what to do. + acceptFirstMouse is called only if shouldDelayWindowOrderingForEvent returns + true. In order to minimize the number of synchronous calls, we send the request + only if our window is not the key window. + + * UIProcess/API/mac/WKView.mm: + (-[WKView acceptsFirstMouse:]): + (-[WKView shouldDelayWindowOrderingForEvent:]): + * UIProcess/WebPageProxy.h: + * UIProcess/mac/WebPageProxyMac.mm: + (WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent): + (WebKit::WebPageProxy::acceptsFirstMouse): + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::shouldDelayWindowOrderingEvent): + (WebKit::WebPage::acceptsFirstMouse): + +2011-04-12 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Oliver Hunt. + + Crash when serializing a null AttributedString + https://bugs.webkit.org/show_bug.cgi?id=58393 + <rdar://problem/9275326> + + * Shared/mac/AttributedString.mm: + (WebKit::AttributedString::encode): + (WebKit::AttributedString::decode): + Prefix the serialized value with an isNull tag. + +2011-04-12 Enrica Casucci <enrica@apple.com> + + Reviewed by Alexey Proskuryakov. + + Infinite recursion in WebHTMLView executeSavedKeypressCommands. + https://bugs.webkit.org/show_bug.cgi?id=58382 + <rdar://problem/9239370> + + Execution of some editing commands could trigger a call to selectedRange that + internally calls executeSavedKeypressCommands creating an infinite recursion. + + * UIProcess/API/mac/WKView.mm: + (-[WKView _executeSavedKeypressCommands]): Added flag to avoid recursion. + (-[WKView _interpretKeyEvent:withCachedTextInputState:savingCommandsTo:WebCore::]): + Added flag initialization. + +2011-04-12 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + Page tears and stutters in WebKit2 when page is > 2048 pixels wide + https://bugs.webkit.org/show_bug.cgi?id=58330 + + Turn off tiling for nonCompositedContentLayer to avoid tearing when + scrolling very wide (> 2048) windows. + + * WebProcess/WebPage/ca/LayerTreeHostCA.cpp: + (WebKit::LayerTreeHostCA::initialize): + +2011-04-12 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Assertion in DrawingAreaImpl::resumePainting() (m_isPaintingSuspended) when clicking a link at twitter.com + https://bugs.webkit.org/show_bug.cgi?id=58377 + <rdar://problem/8976531> + + Remove the assertion. + + * WebProcess/WebPage/DrawingAreaImpl.cpp: + (WebKit::DrawingAreaImpl::resumePainting): + +2011-04-11 Stephanie Lewis <slewis@apple.com> + + Reviewed by Oliver Hunt. + + https://bugs.webkit.org/show_bug.cgi?id=58280 + <rdar://problem/9252824> javascript in an inconsistent state due to serialization returning an un-handled exception + Change use of SerializedScriptValue::Create to use the same api as the rest of WebKit2. This has the benefit + of handling any exceptions so Javascript is not in an inconsistent state. + + * Shared/API/c/WKSerializedScriptValue.h: fix a typo + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::runJavaScriptInMainFrame): + +2011-04-12 Jeff Miller <jeffm@apple.com> + + Reviewed by Adam Roben. + + WebKit2: Pressing Tab in Web Inspector's console does not cycle through completion options + https://bugs.webkit.org/show_bug.cgi?id=56020 + + Safari was always calling TranslateMessage() on key events since it has no way to know whether + WebKit handled the event without a PageUIClient (which Safari only installs on pages inside + a Safari window), which was generating a WM_CHAR message containing the tab in this case. The fix + is for Safari to never call TranslateMessage() on key events outside of a Safari window, but this + means the WebPageProxy needs to do this for unhandled key events if there is no didNotHandleKeyEvent + callback in the PageUIClient. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::didReceiveEvent): Call TranslateMessage() on Windows for unhandled key events that can't be handled by the PageUIClient. + * UIProcess/WebUIClient.cpp: + (WebKit::WebUIClient::canNotHandleKeyEvent): Added. + * UIProcess/WebUIClient.h: Added canNotHandleKeyEvent(). + +2011-04-12 Alice Liu <alice.liu@apple.com> + + Reviewed by Sam Weinig. + + https://bugs.webkit.org/show_bug.cgi?id=58292 + Provide new setting to allow site icon loading despite disabling automatic image loading in general. + + * Shared/WebPreferencesStore.h: Add macro for setting default value. + * UIProcess/API/C/WKPreferences.cpp: + (WKPreferencesSetLoadsSiteIconsIgnoringImageLoadingPreference): Added setter. + (WKPreferencesGetLoadsSiteIconsIgnoringImageLoadingPreference): Added getter. + * UIProcess/API/C/WKPreferences.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): Add to list of WebCore settings that get propagated to WebKit preferences. + +2011-04-12 Jessie Berlin <jberlin@apple.com> + + Reviewed by Anders Carlsson. + + WebKit2: Spelling and Grammar Checking: Make sure to remove the markings from the document + when spelling and/or grammar checking is disabled. + https://bugs.webkit.org/show_bug.cgi?id=58350 + + * UIProcess/API/mac/WKView.mm: + (-[WKView toggleContinuousSpellChecking:]): + Move the call to unmark the errors to the WebProcess. + (-[WKView setGrammarCheckingEnabled:]): + Ditto. + (-[WKView toggleGrammarChecking:]): + Ditto. + + * UIProcess/WebPageProxy.cpp: + Remove unused functions. + * UIProcess/WebPageProxy.h: + Ditto. + * WebProcess/WebPage/WebPage.messages.in: + Ditto. + * WebProcess/WebPage/WebPage.h: + + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::setTextCheckerState): + If grammar or spelling checking is disabled, unmark all the pages. + Doing it here allows makes it possible to unmark all pages in a cross-platform way that is + triggered both by selecting the the context menu items and by any other methods of updating + the enabled / disabled state. + +2011-04-12 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Cisco Meeting Center will not download or launch from Safari + https://bugs.webkit.org/show_bug.cgi?id=58366 + <rdar://problem/8987139> + + It's OK if a plug-in has less (or more) MIME type descriptions than actual MIME types. + + * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: + (WebKit::getPluginInfoFromCarbonResources): + +2011-04-12 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Call PluginControllerProxy::platformGeometryDidChange before Plugin::geometryDidChange + https://bugs.webkit.org/show_bug.cgi?id=58361 + + Since Plugin::geometryDidChange ends up calling plug-in code it can resize the plug-in which causes + platformGeometryDidChange to be called with the wrong rect. + + * PluginProcess/PluginControllerProxy.cpp: + (WebKit::PluginControllerProxy::geometryDidChange): + Call platformGeometryDidChange. + + * PluginProcess/PluginControllerProxy.h: + * PluginProcess/mac/PluginControllerProxyMac.mm: + (WebKit::PluginControllerProxy::platformGeometryDidChange): + Remove the parameters to platformGeometryDidChange and just use m_frameRect instead. + +2011-04-12 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Move three Mac specific functions to PluginControllerProxyMac.mm. + +2011-04-12 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Cache the window and plug-in element NPObjects + https://bugs.webkit.org/show_bug.cgi?id=58355 + + * PluginProcess/PluginControllerProxy.cpp: + (WebKit::PluginControllerProxy::PluginControllerProxy): + (WebKit::PluginControllerProxy::~PluginControllerProxy): + (WebKit::PluginControllerProxy::windowScriptNPObject): + (WebKit::PluginControllerProxy::pluginElementNPObject): + * PluginProcess/PluginControllerProxy.h: + +2011-04-12 Alejandro G. Castro <alex@igalia.com> + + Fixed GTK compilation after r83454. + + * UIProcess/gtk/WebView.cpp: + (WebKit::WebView::findStringInCustomRepresentation): + (WebKit::WebView::countStringMatchesInCustomRepresentation): + * UIProcess/gtk/WebView.h: + +2011-04-11 Daniel Bates <dbates@webkit.org> + + Attempt to fix the Qt Linux Release build after changeset 83550 <http://trac.webkit.org/changeset/83550> + (https://bugs.webkit.org/show_bug.cgi?id=54159). + + * WebKit2API.pri: Append UIProcess/API/C/WKResourceCacheManager.cpp to the list WEBKIT2_API_SOURCES. + +2011-04-11 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Move focus management out of WebKit via the UIClient + <rdar://problem/8784068> + https://bugs.webkit.org/show_bug.cgi?id=58278 + + * UIProcess/API/C/WKPage.h: + * UIProcess/API/mac/PageClientImpl.h: + * UIProcess/API/mac/PageClientImpl.mm: + * UIProcess/API/qt/qwkpage.cpp: + (QWKPage::QWKPage): + * UIProcess/API/qt/qwkpage_p.h: + * UIProcess/PageClient.h: + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::setFocus): + * UIProcess/WebUIClient.cpp: + (WebKit::WebUIClient::focus): + (WebKit::WebUIClient::unfocus): + * UIProcess/WebUIClient.h: + * UIProcess/gtk/WebView.cpp: + * UIProcess/gtk/WebView.h: + * UIProcess/win/WebView.h: + Remove PageClient::setFocus() in favor of WebUIClient::focus and WebUIClient::unfocus. + +2011-04-11 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Maciej Stachowiak. + + WebKit2: Cannot use Ctrl-Delete as a custom keyboard shortcut + https://bugs.webkit.org/show_bug.cgi?id=58265 + <rdar://problem/9221468> + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::keyEvent): Added a comment explaining that doing work after DOM event + dispatch isn't great. + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::performNonEditingBehaviorForSelector): Added a comment explaining how this + might be moved down to WebCore. + (WebKit::WebPage::performDefaultBehaviorForKeyEvent): This is now empty, since both Space + and Backspace behaviors are implemented in WebCore. + +2011-04-11 Anders Carlsson <andersca@apple.com> + + Try to fix the Windows build. + + * UIProcess/win/WebInspectorProxyWin.cpp: + (WebKit::WebInspectorProxy::platformCreateInspectorPage): + +2011-04-11 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Dan Bernstein. + + REGRESSION (r83081): Esc key no longer removes current Kotoeri text operation + https://bugs.webkit.org/show_bug.cgi?id=58274 + <rdar://problem/9263683> + + * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getMarkedRange): Wrap the returned + temporary in RefPtr. + +2011-04-11 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Remove m_urlAtProcessExit from WebPageProxy + https://bugs.webkit.org/show_bug.cgi?id=58275 + + Get rid of m_urlAtProcessExit and replace some zeros with nullptrs. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::processDidCrash): + * UIProcess/WebPageProxy.h: + +2011-04-11 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Remove the WebContext member variable from WebPageProxy + https://bugs.webkit.org/show_bug.cgi?id=58271 + <rdar://problem/9148125> + + * UIProcess/API/C/WKPage.cpp: + (WKPageGetContext): + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::create): + (WebKit::WebPageProxy::WebPageProxy): + (WebKit::WebPageProxy::process): + (WebKit::WebPageProxy::reattachToWebProcess): + (WebKit::WebPageProxy::canShowMIMEType): + (WebKit::WebPageProxy::receivedPolicyDecision): + (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): + (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): + (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): + (WebKit::WebPageProxy::didCommitLoadForFrame): + (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): + (WebKit::WebPageProxy::didFinishLoadForFrame): + (WebKit::WebPageProxy::didFailLoadForFrame): + (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): + (WebKit::WebPageProxy::didReceiveTitleForFrame): + (WebKit::WebPageProxy::didFirstLayoutForFrame): + (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): + (WebKit::WebPageProxy::didRemoveFrameFromHierarchy): + (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): + (WebKit::WebPageProxy::didRunInsecureContentForFrame): + (WebKit::WebPageProxy::decidePolicyForNavigationAction): + (WebKit::WebPageProxy::decidePolicyForNewWindowAction): + (WebKit::WebPageProxy::decidePolicyForResponse): + (WebKit::WebPageProxy::unableToImplementPolicy): + (WebKit::WebPageProxy::willSubmitForm): + (WebKit::WebPageProxy::mouseDidMoveOverElement): + (WebKit::WebPageProxy::showContextMenu): + (WebKit::WebPageProxy::contextMenuItemSelected): + * UIProcess/WebPageProxy.h: + * UIProcess/WebProcessProxy.cpp: + (WebKit::WebProcessProxy::createWebPage): + * UIProcess/mac/WebInspectorProxyMac.mm: + (WebKit::WebInspectorProxy::platformCreateInspectorPage): + +2011-04-11 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Adam Roben. + + Ignore context change callbacks when not on the main thread + https://bugs.webkit.org/show_bug.cgi?id=58256 + <rdar://problem/9266090> + + * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp: + (WebKit::LayerTreeHostCAWin::contextDidChangeCallback): Do nothing when not called + on the main thread. This should only happen when no changes have actually + been committed to the context, eg. when a video frame has been added to an image + queue, so return without triggering animations etc. + +2011-04-11 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + First step towards simplifying WebPageProxy/WebProcessProxy/WebContext ownership + https://bugs.webkit.org/show_bug.cgi?id=58266 + <rdar://problem/9148125> + + With this patch, the WKView holds a strong reference to a WebPageProxy. The + WebPageProxy in turn holds a strong reference to its WebProcessProxy. Finally, + The WebProcessProxy holds a strong reference to its WebContext. + + The WebContext holds a strong reference to the running WebProcessProxy which results + in a reference cycle that's broken when the web process exits. + + The reason for is to avoid crashes where WebPageProxy::process() returns null if the web process + has crashed but has not yet been relaunched. + + * UIProcess/WebContext.cpp: + (WebKit::WebContext::disconnectProcess): + Add comment. + + (WebKit::WebContext::createWebPage): + Return a PassRefPtr. + + (WebKit::WebContext::relaunchProcessIfNecessary): + Change this to return a WebPageProxy. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::create): + This now takes a PassRefPtr<WebProcessProxy>. + + (WebKit::WebPageProxy::WebPageProxy): + Ditto. + + (WebKit::WebPageProxy::~WebPageProxy): + Call close() if necessary. + + (WebKit::WebPageProxy::reattachToWebProcess): + Replace the current process with the new process. + + * UIProcess/WebProcessProxy.cpp: + (WebKit::WebProcessProxy::create): + Take a PassRefPtr<WebContext>. + + (WebKit::WebProcessProxy::WebProcessProxy): + Ditto. + + (WebKit::WebProcessProxy::webPage): + Remove .get() now that the page map uses weak references. + + (WebKit::WebProcessProxy::createWebPage): + This now returns the created web page proxy. + +2011-04-11 Adam Roben <aroben@apple.com> + + Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply + + On Windows, windowed plugins' HWNDs are created as children of the WKView's window. This + creates a cross-process window hierarchy, which in turn attaches the input states of the UI + process's and web process's main threads (as if ::AttachThreadInput has been called). Having + the input states attached means that changes to the input state (e.g., changing the focus + window) can result in synchronous window messages being sent between the processes. This can + result in deadlocks if the UI process changes the input state while handling a synchronous + CoreIPC message from the web process. Since the web process isn't running its message loop + while waiting for the reply, it never processes the messages Windows is sending it from the + UI process. + + The solution taken in this patch is to continue to dispatch sent (not posted) messages to + windows created by the web process while waiting for a sync CoreIPC reply. Someday we can + hopefully reduce the number of cases in which the UI process modifies the thread's input + state while handling a synchronous message; see the bug for details. + + Fixes <http://webkit.org/b/58239> <rdar://problem/8769302> REGRESSION (WebKit2): Deadlock + clicking Flash plugin + + Reviewed by Anders Carlsson. + + * Platform/CoreIPC/BinarySemaphore.h: + (CoreIPC::BinarySemaphore::event): Added. Simple getter to expose the underlying event + HANDLE. + + * Platform/CoreIPC/Connection.cpp: + (CoreIPC::Connection::SyncMessageState::waitWhileDispatchingSentMessages): New Windows-only + function that is used instead of wait() so that sent messages will continue to be + dispatched. + (CoreIPC::Connection::waitForSyncReply): Use waitWhileDispatchingSentMessages instead of + wait on Windows. Our Client gives us the set of windows that need to have windows delivered + to them. + + * Platform/CoreIPC/Connection.h: Added new + windowsToReceiveSentMessagesWhileWaitingForSyncReply function to Client. + + * Platform/RunLoop.h: Added new dispatchSentMessagesUntil function to be used while waiting + for a sync CoreIPC reply. + + * Platform/win/RunLoopWin.cpp: + (RunLoop::dispatchSentMessagesUntil): Added. If we have no windows to dispatch messages to, + then just wait on the semaphore. Otherwise spin a ::MsgWaitForMultipleObjectsEx loop to + detect when the semaphore is signaled, the timeout elapses, or sent messages are available, + and handle each case appropriately. + + * UIProcess/WebProcessProxy.h: Added new CoreIPC::Connection::Client function. + + * UIProcess/win/WebProcessProxyWin.cpp: Added. + (WebKit::WebProcessProxy::windowsToReceiveSentMessagesWhileWaitingForSyncReply): Just return + an empty Vector. The web process never modifies the thread's input state while responding to + a synchronous message, so we don't have anything to worry about here. + + * WebProcess/WebProcess.h: Added new CoreIPC::Connection::Client function. + + * WebProcess/win/WebProcessWin.cpp: + (WebKit::addWindowToVectorIfOwnedByCurrentThread): New helper function to be called by + ::EnumThreadWindows/::EnumChildWindows. Does what it says. + (WebKit::WebProcess::windowsToReceiveSentMessagesWhileWaitingForSyncReply): Added. Returns + all top-level windows created by this thread, descendants of those windows created by this + thread, and descendants of WKViews' windows created by this thread. + + * win/WebKit2.vcproj: Added WebProcessProxyWin.cpp. + +2011-04-11 Jessie Berlin <jberlin@apple.com> + + Reviewed by Anders Carlsson. + + WebKit2: Implement TextChecker on Windows + https://bugs.webkit.org/show_bug.cgi?id=57862 + + Part 7: Implement getGuessesForWord, learnWord, and ignoreWord. + + * UIProcess/API/C/win/WKTextChecker.cpp: + (WKTextCheckerChangeSpellingToWord): + * UIProcess/API/C/win/WKTextChecker.h: + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::changeSpellingToWord): + Make this function const since it does not modify the WebPageProxy and making it const + allows WebTextChecker::changeSpellingToWord to take a const WebPageProxy. + (WebKit::WebPageProxy::learnWord): + * UIProcess/WebPageProxy.h: + + * UIProcess/TextChecker.h: + * UIProcess/win/TextCheckerWin.cpp: + (WebKit::TextChecker::getGuessesForWord): + Ask the TextCheckerClient for the guesses. + (WebKit::TextChecker::learnWord): + Tell the TextCheckerClient. + (WebKit::TextChecker::ignoreWord): + Ditto. + * UIProcess/gtk/TextCheckerGtk.cpp: + (WebKit::TextChecker::learnWord): + Add an unused param that is necessary for Windows. + * UIProcess/mac/TextCheckerMac.mm: + (WebKit::TextChecker::learnWord): + Ditto. + * UIProcess/qt/TextCheckerQt.cpp: + (WebKit::TextChecker::learnWord): + Ditto. + + * UIProcess/win/WebTextChecker.cpp: + (WebKit::WebTextChecker::changeSpellingToWord): + Tell the page. + * UIProcess/win/WebTextChecker.h: + + * UIProcess/win/WebTextCheckerClient.cpp: + (WebKit::WebTextCheckerClient::guessesForWord): + (WebKit::WebTextCheckerClient::learnWord): + (WebKit::WebTextCheckerClient::ignoreWord): + * UIProcess/win/WebTextCheckerClient.h: + +2011-04-11 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Remove unused WebProcessProxy functions + https://bugs.webkit.org/show_bug.cgi?id=58262 + + * UIProcess/WebProcessProxy.cpp: + * UIProcess/WebProcessProxy.h: + +2011-04-11 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Crash in WebPageProxy::countStringMatches + https://bugs.webkit.org/show_bug.cgi?id=58255 + <rdar://problem/9243837> + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::countStringMatches): + Return early if the page is not valid. + +2011-04-11 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + WebKit2: links don’t update to look visited + <rdar://problem/8806254> + https://bugs.webkit.org/show_bug.cgi?id=58252 + + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::visitedLinkStateChanged): + (WebKit::WebProcess::allVisitedLinkStateChanged): + * WebProcess/WebProcess.h: + Remove use of vestigial sharedPageGroup and instead iterate set of + page groups in use by the process. + +2011-04-11 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Adam Roben. + + WebKit2: Windows 7 Gestures Window Bounce shouldn't require a sync message + https://bugs.webkit.org/show_bug.cgi?id=58167 + <rdar://problem/9259813> + + Instead of making GestureDidScroll sync, have WebPageWin call from WebProcess -> + UIProcess when the gesture causes the page to scroll to the beginning or the + end of the document. + + * UIProcess/PageClient.h: + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::gestureDidScroll): Not a sync message anymore. + (WebKit::WebPageProxy::setGestureScrollingLimitReached): Tell the page client that the gesture + scrolling limnit was reached. + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: Add a new message. + * UIProcess/win/WebView.cpp: + (WebKit::WebView::WebView): Initialize new variable. + (WebKit::WebView::onGesture): Use the state of the member variable, not the response from + the sync message. + * UIProcess/win/WebView.h: + (WebKit::WebView::setGestureScrollingLimitReached): + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: + * WebProcess/WebPage/win/WebPageWin.cpp: + (WebKit::scrollbarAtTopOfBottomOrDocument): Returns whether or not the scrollbar is at the + top or bottom of the document. + (WebKit::WebPage::gestureDidScroll): Track whether or not we started at the beginning + or end of the document, and whether or not we ended at the beginning or end of the document, + and send a message if the value changed. + +2011-04-04 Jer Noble <jer.noble@apple.com> + + Reviewed by Maciej Stachowiak. + + WK2: PDF: Find in page + https://bugs.webkit.org/show_bug.cgi?id=57765 + + Support searching text within PDF documents. Find requests must be routed from the + WebPageProxy, through the PageClient, and to the WKView, where they can be passed to + the PDFViewController. + + * UIProcess/API/mac/PDFViewController.h: + * UIProcess/API/mac/PDFViewController.mm: + (_PDFSelectionsAreEqual): Copied from WebPDFView. + (-[WKPDFView _nextMatchFor:direction:caseSensitive:wrap:fromSelection:startInSelection:]): Copied from WebPDFView. + (-[WKPDFView _countMatches:caseSensitive:]): Added. + (WebKit::PDFViewController::findString): Added. + (WebKit::PDFViewController::countStringMatches): Added. + * UIProcess/PageClient.h: + * UIProcess/API/mac/PageClientImpl.h: + * UIProcess/API/mac/PageClientImpl.mm: + (WebKit::PageClientImpl::findStringInCustomRepresentation): Added. + (WebKit::PageClientImpl::countStringMatchesInCustomRepresentation): Added. + * UIProcess/API/mac/WKViewInternal.h: + * UIProcess/API/mac/WKView.mm: + (-[WKView _findStringInCustomRepresentation:withFindOptions:maxMatchCount:]): Added. + (-[WKView _countStringMatchesInCustomRepresentation:withFindOptions:maxMatchCount:]): Added. + * UIProcess/WebPageProxy.h: Moved a number of find-related functions from private: to public: so + they could be called from PDFViewController. + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::findString): Added. + (WebKit::WebPageProxy::countStringMatches): Added. + * UIProcess/win/WebView.cpp: + (WebKit::WebView::findStringInCustomRepresentation): Added stub. + (WebKit::WebView::countStringMatchesInCustomRepresentation): Ditto. + * UIProcess/win/WebView.h: + * UIProcess/API/qt/qwkpage_p.h: + (QWKPagePrivate::findStringInCustomRepresentation): Added stub. + (QWKPagePrivate::countStringMatchesInCustomRepresentation): Added stub. + +2011-04-11 Jessie Berlin <jberlin@apple.com> + + Reviewed by Anders Carlsson. + + WebKit2: Implement TextChecker on Windows + https://bugs.webkit.org/show_bug.cgi?id=57862 + + Part 6: Update the Spelling UI with the spelling and grammar mistakes. + + * UIProcess/API/C/win/WKAPICastWin.h: + (WebKit::toAPI): + Make it possible to go from a WebCore::GrammarDetail to a WebGrammarDetail. + + * UIProcess/API/C/win/WKGrammarDetail.cpp: + (WKGrammarDetailCreate): + (WKGrammarDetailGetLocation): + (WKGrammarDetailGetLength): + (WKGrammarDetailCopyGuesses): + (WKGrammarDetailCopyUserDescription): + * UIProcess/API/C/win/WKGrammarDetail.h: + + * UIProcess/API/C/win/WKTextChecker.cpp: + (WKTextCheckerCheckSpelling): + Tell the WebTextChecker. + * UIProcess/API/C/win/WKTextChecker.h: + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::contextMenuItemSelected): + If the show/hide spelling UI is selected and the spelling UI is not showing, make sure to + advance to the next misspelling (in this case, the first). + This behavior matches that in WebCore and WKView.mm. + (WebKit::WebPageProxy::advanceToNextMisspelling): + Make this function const since it does not modify the WebPageProxy and making it const + allows WebTextChecker::checkSpelling to take a const WebPageProxy. + (WebKit::WebPageProxy::spellDocumentTag): + (WebKit::WebPageProxy::updateSpellingUIWithMisspelledWord): + (WebKit::WebPageProxy::updateSpellingUIWithGrammarString): + * UIProcess/WebPageProxy.h: + + * UIProcess/TextChecker.h: + * UIProcess/win/TextCheckerWin.cpp: + (WebKit::TextChecker::uniqueSpellDocumentTag): + Tell the TextCheckerClient which WebPageProxy this tag is for. + (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): + Tell the TextCheckerClient. + (WebKit::TextChecker::updateSpellingUIWithGrammarString): + Ditto. + * UIProcess/mac/TextCheckerMac.mm: + (WebKit::TextChecker::uniqueSpellDocumentTag): + Add the new argument that is unused by this port. + (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): + Ditto. + (WebKit::TextChecker::updateSpellingUIWithGrammarString): + Ditto. + * UIProcess/gtk/TextCheckerGtk.cpp: + (WebKit::TextChecker::uniqueSpellDocumentTag): + Ditto. + (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): + Ditto. + (WebKit::TextChecker::updateSpellingUIWithGrammarString): + Ditto. + * UIProcess/qt/TextCheckerQt.cpp: + (WebKit::TextChecker::uniqueSpellDocumentTag): + Ditto. + (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): + Ditto. + (WebKit::TextChecker::updateSpellingUIWithGrammarString): + Ditto. + + * UIProcess/win/WebGrammarDetail.cpp: + (WebKit::WebGrammarDetail::create): + (WebKit::WebGrammarDetail::WebGrammarDetail): + (WebKit::WebGrammarDetail::guesses): + * UIProcess/win/WebGrammarDetail.h: + (WebKit::WebGrammarDetail::location): + (WebKit::WebGrammarDetail::length): + (WebKit::WebGrammarDetail::userDescription): + + * UIProcess/win/WebTextChecker.cpp: + (WebKit::WebTextChecker::checkSpelling): + Tell the page to advance to the next misspelling. This matches the WK1 WebView.cpp logic. + + * UIProcess/win/WebTextChecker.h: + * UIProcess/win/WebTextCheckerClient.cpp: + (WebKit::WebTextCheckerClient::uniqueSpellDocumentTag): + (WebKit::WebTextCheckerClient::toggleSpellingUIIsShowing): + (WebKit::WebTextCheckerClient::updateSpellingUIWithMisspelledWord): + (WebKit::WebTextCheckerClient::updateSpellingUIWithGrammarString): + * UIProcess/win/WebTextCheckerClient.h: + +2011-04-10 Maciej Stachowiak <mjs@apple.com> + + Not reviewed. + + Remove extra inadvertantly commiteed changes from last change. + + * WebProcess/com.apple.WebProcess.sb: + +2011-04-10 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Dan Bernstein. + + REGRESSION: WebProcess spews sandboxing violations for outbound network traffic + https://bugs.webkit.org/show_bug.cgi?id=58215 + <rdar://problem/9251695> + + * WebProcess/com.apple.WebProcess.sb: Restore some previously removed rules. + +2011-04-10 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com> + + Reviewed by Eric Seidel. + + Require no undefined symbols during compilation. + + [Qt] [WK2] WebKitTestRunner, QtWebProcess and WTRInjectBundle should fail to compile when there's undefined symbols + https://bugs.webkit.org/show_bug.cgi?id=54896 + + Add -Wl,--no-undefined to catch missing symbols early. + + * WebProcess.pro: + +2011-04-09 Geoffrey Garen <ggaren@apple.com> + + Not reviewed. + + Try recommitting some things svn left out of my last commit. + + * WebProcess/Plugins/Netscape/NPJSObject.h: + +2011-04-09 Geoffrey Garen <ggaren@apple.com> + + Not reviewed. + + Try recommitting some things svn left out of my last commit. + + * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: + (WebKit::NPRuntimeObjectMap::evaluate): + +2011-04-08 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + WebKit2: Safari doesn't respect cmd-arrows (and variations) as custom keyboard shortcuts + https://bugs.webkit.org/show_bug.cgi?id=58175 + <rdar://problem/9060555> + + The problem is that command handling should be different for events that come as keyDown: + and those that come as performKeyEquivalent:. WebKit1 only tries custom "key bindings" + when handling a keyDown:, letting a performKeyEquivalent: run through the whole responder + chain first. + + This would be very difficult to implement in WebKit2 because of how it re-sends the same + event after web process handling. Luckily, we can both fix the bug and make the behavior + more robust by not hardcoding key combinations. + + * WebProcess/WebPage/WebPage.h: Edit performNonEditingBehaviorForSelector. + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::executeKeypressCommandsInternal): When executing commands, also try + executing editor commands in their non-editing meaning, which is usually scrolling. + (WebKit::WebPage::performNonEditingBehaviorForSelector): Naive implementation with a chain + of ifs, which is hopefully ok performance-wise for a dozen check. + (WebKit::WebPage::performDefaultBehaviorForKeyEvent): Only kept two commands here that I + couldn't easily move. + +2011-04-08 Jessie Berlin <jberlin@apple.com> + + Reviewed by Anders Carlsson. + + WebKit2: Show the substitutions panel on Mac and make sure the menu items titles are + updated correctly. + https://bugs.webkit.org/show_bug.cgi?id=58179 + + * UIProcess/API/mac/WKView.mm: + (-[WKView validateUserInterfaceItem:]): + The title of the context menu item should be opposite of whether or not the spelling panel + is visible. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::contextMenuItemSelected): + If the "Show/Hide" Substitutions item is selected, call toggleSubstitutionsPanelIsShowing. + (WebKit::WebPageProxy::substitutionsPanelIsShowing): + Ask the TextChecker. + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: + + * UIProcess/TextChecker.h: + * UIProcess/mac/TextCheckerMac.mm: + (WebKit::TextChecker::substitutionsPanelIsShowing): + As the shared NSSpellChecker if the substitutionsPanel is visible. + (WebKit::TextChecker::toggleSubstitutionsPanelIsShowing): + Order the substitutionsPanel out or front (copied from WKView.mm). + + * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: + (WebKit::WebEditorClient::substitutionsPanelIsShowing): + Send a sync message to the UI process to find out. + It needs to be sync because the editor code relies on the value returned. + +2011-04-08 Dan Bernstein <mitz@apple.com> + + Reviewed by Adele Peterson. + + Fixed a bug where right-to-left frames incorrectly reported that they were pinned to the left + when they were actually not. + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::didChangeScrollOffsetForMainFrame): Do not assume that the minimum scroll offset + is zero, because it is not. + +2011-04-08 Anders Carlsson <andersca@apple.com> + + Fix the Windows build. + + * UIProcess/win/WebView.cpp: + (WebKit::WebView::Drop): + +2011-04-08 Jessie Berlin <jberlin@apple.com> + + Reviewed by Anders Carlsson. + + WebKit2: Implement TextChecker on Windows + https://bugs.webkit.org/show_bug.cgi?id=57862 + + Part 5: Implement the code show and hide the Spelling UI via the context menu item (both + Windows and Mac). + + * UIProcess/API/C/win/WKTextChecker.h: + Add the new WKTextCheckerClient funtions. + + * UIProcess/API/mac/WKView.mm: + (-[WKView validateUserInterfaceItem:]): + The title of the context menu item should be opposite of whether or not the spelling panel + is visible. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::contextMenuItemSelected): + If the "Show/Hide Spelling and Grammar" item is selected, call toggleSpellingUIIsShowing. + (WebKit::WebPageProxy::spellingUIIsShowing): + Call through to TextChecker. + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: + + * UIProcess/TextChecker.h: + * UIProcess/win/TextCheckerWin.cpp: + (WebKit::TextChecker::spellingUIIsShowing): + Call the TextCheckerClient. + (WebKit::TextChecker::toggleSpellingUIIsShowing): + Ditto. + * UIProcess/mac/TextCheckerMac.mm: + (WebKit::TextChecker::spellingUIIsShowing): + Ask the shared NSSpellChecker if the spellingPanel is visible. + (WebKit::TextChecker::toggleSpellingUIIsShowing): + Order the spellingPanel out or front (copied from WKView.mm). + * UIProcess/qt/TextCheckerQt.cpp: + (WebKit::TextChecker::spellingUIIsShowing): + Call notImplemented. + (WebKit::TextChecker::toggleSpellingUIIsShowing): + Ditto. + * UIProcess/gtk/TextCheckerGtk.cpp: + (WebKit::TextChecker::spellingUIIsShowing): + Ditto. + (WebKit::TextChecker::toggleSpellingUIIsShowing): + Ditto. + + * UIProcess/win/WebTextCheckerClient.cpp: + (WebKit::WebTextCheckerClient::spellingUIIsShowing): + Call the client. + (WebKit::WebTextCheckerClient::toggleSpellingUIIsShowing): + Ditto. + * UIProcess/win/WebTextCheckerClient.h: + + * WebProcess/WebCoreSupport/WebEditorClient.cpp: + (WebKit::WebEditorClient::spellingUIIsShowing): + Send a sync message to the UI process to find out. + It needs to be sync because the Editor code relies on the value returned. + +2011-04-08 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Sandboxing doesn't work if a local file is dropped on the content area + https://bugs.webkit.org/show_bug.cgi?id=58177 + <rdar://problem/9019253> + + When performing a drag and the dragging pasteboard contains a local file, create a + sandbox extension and pass it along. If we end up loading the file, the sandbox extension + tracker will consume the extension. + + * UIProcess/API/mac/WKView.mm: + (maybeCreateSandboxExtensionFromPasteboard): + Add helper function. + + (-[WKView performDragOperation:]): + Create a sandbox extension handle and pass it to performDrag. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::dragEntered): + (WebKit::WebPageProxy::dragUpdated): + (WebKit::WebPageProxy::dragExited): + Pass an empty sandbox extension handle to performDragControllerAction. + + (WebKit::WebPageProxy::performDrag): + Pass the sandbox extension handle along to performDragControllerAction. + + (WebKit::WebPageProxy::performDragControllerAction): + Send along the sandbox extension handle. + + * WebProcess/WebCoreSupport/WebDragClient.cpp: + (WebKit::WebDragClient::willPerformDragDestinationAction): + If the destination action is a load action, call WebPage::willPerformLoadDragDestinationAction. + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::performDragControllerAction): + Create a sandbox extension. + + (WebKit::WebPage::willPerformLoadDragDestinationAction): + If we have a sandbox extension, pass it along to the sandbox extension tracker. + + (WebKit::WebPage::SandboxExtensionTracker::willPerformLoadDragDestinationAction): + Call setPendingProvisionalSandboxExtension. + + (WebKit::WebPage::SandboxExtensionTracker::beginLoad): + Call setPendingProvisionalSandboxExtension. + + (WebKit::WebPage::SandboxExtensionTracker::setPendingProvisionalSandboxExtension): + Factor code from beginLoad out into a separate function. + + * WebProcess/WebPage/WebPage.messages.in: + PerformDragControllerAction now takes a sandbox extension handle. + +2011-04-08 Alice Liu <alice.liu@apple.com> + + Reviewed by Adam Roben. + + https://bugs.webkit.org/show_bug.cgi?id=58151 + Crash after closing a Webview, in WebKit!WebCore::WindowMessageBroadcaster::SubclassedWndProc + + * UIProcess/win/WebView.cpp: + (WebKit::WebView::close): + Resolve a difference between old WebKit WebView and WebKit2 WebView by destroying and clearing + out WebKit2 WebView's HWND when closing. Not doing so was causing the WebView to remain in the + list of WindowMessageBroadcaster listeners, and after closing the WebView, WindowMessageBroadcaster + would message a dead WebView and crash. + +2011-04-08 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Make the drag operations be different functions + https://bugs.webkit.org/show_bug.cgi?id=58169 + + Since we want performDrag to take a sandbox extension, separate the four + drag operations out into different functions. No functionality change. + + * UIProcess/API/mac/WKView.mm: + (-[WKView draggingEntered:]): + (-[WKView draggingUpdated:]): + (-[WKView draggingExited:]): + (-[WKView performDragOperation:]): + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::dragEntered): + (WebKit::WebPageProxy::dragUpdated): + (WebKit::WebPageProxy::dragExited): + (WebKit::WebPageProxy::performDrag): + * UIProcess/WebPageProxy.h: + * UIProcess/win/WebView.cpp: + (WebKit::WebView::DragEnter): + (WebKit::WebView::DragOver): + (WebKit::WebView::DragLeave): + (WebKit::WebView::Drop): + +2011-04-08 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Parse 'DispatchOnConnectionQueue' in messages.in files + https://bugs.webkit.org/show_bug.cgi?id=58168 + + Handle parsing multiple, space-separated attributes in .messages.in files. Keep track of + 'DispatchOnConnectionQueue' and rename 'delayed' to 'Delayed'. + + * Scripts/webkit2/messages.py: + * Scripts/webkit2/messages_unittest.py: + +2011-04-08 Alpha Lam <hclam@chromium.org> + + Unreviewed, rolling out r83335. + http://trac.webkit.org/changeset/83335 + https://bugs.webkit.org/show_bug.cgi?id=53556 + + GTK and QT bots are broken + + * Configurations/FeatureDefines.xcconfig: + +2011-04-07 Anna Cavender <annacc@chromium.org> + + Reviewed by Eric Carlson. + + Setup ENABLE(TRACK) feature define + https://bugs.webkit.org/show_bug.cgi?id=53556 + + * Configurations/FeatureDefines.xcconfig: + +2011-04-07 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Alder. + + REGRESSION (WebKit2): AppKit thinks that web views don't support DocumentAccess + https://bugs.webkit.org/show_bug.cgi?id=58102 + <rdar://problem/9223246> + + * UIProcess/API/mac/WKView.h: + * UIProcess/API/mac/WKView.mm: + (-[WKView doCommandBySelector:]): + (-[WKView insertText:replacementRange:]): + (-[WKView validAttributesForMarkedText]): + (-[WKView setMarkedText:selectedRange:replacementRange:]): + (-[WKView attributedSubstringForProposedRange:actualRange:]): + (-[WKView firstRectForCharacterRange:actualRange:]): + Switch to NSTextInputClient, opting out of optimizations and optional features for now. + +2011-04-08 Siddharth Mathur <siddharth.mathur@nokia.com> + + Reviewed by Martin Robinson. + + [Qt][WK2][Symbian] Remove use of stack arrays with variable size + https://bugs.webkit.org/show_bug.cgi?id=57877 + + For better compiler portability, use new/delete for arrays when size + isn't known at compile time. Also fix one compiler warning about bitshift + operations on signed integer + * Platform/CoreIPC/unix/ConnectionUnix.cpp: + (CoreIPC::Connection::readyReadHandler): + (CoreIPC::Connection::sendOutgoingMessage): + +2011-04-08 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] Fix the WebKit2 build for older versions of GTK+ + https://bugs.webkit.org/show_bug.cgi?id=58095 + + * UIProcess/gtk/ChunkedUpdateDrawingAreaProxyGtk.cpp: Include the GtkVersioning.h header. + +2011-04-07 Balazs Kelemen <kbalazs@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [WK2][Qt][GTK] Introduce common use flag for the shared UNIX domain socket IPC implementation + https://bugs.webkit.org/show_bug.cgi?id=58030 + + Replace "PLATFORM(QT) || PLATFORM(GTK)" conditions in IPC code with + USE(UNIX_DOMAIN_SOCKETS). + + * Platform/CoreIPC/Attachment.h: + * Platform/CoreIPC/Connection.h: + * Platform/SharedMemory.h: + +2011-04-07 Anders Carlsson <andersca@apple.com> + + Reviewed by Simon Fraser. + + Clicks not recognized on http://www.nibblestutorials.net/ which uses Silverlight + https://bugs.webkit.org/show_bug.cgi?id=58108 + <rdar://problem/9167611> + + Change platformHandleMouseEvent to return true, which means that the plug-in has handled the + event. Some plug-ins (like Silverlight) will return false from NPP_HandleEvent even though the + event has been handled. In this case it lead to a very subtle bug where the plug-in element would + lose focus right after a mouse down even had been sent. + + * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: + (WebKit::NetscapePlugin::platformHandleMouseEvent): + +2011-04-07 Adam Roben <aroben@apple.com> + + Pass NPP_SetWindow a null window handle during plugin destruction on non-Mac platforms + + This matches WebKit1. + + Fixes <http://webkit.org/b/47009> WebKit2 needs to call NPP_SetWindow when destroying a + plugin + + Reviewed by Anders Carlsson. + + * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: + (WebKit::NetscapePlugin::destroy): Null out our NPWindow's window handle and pass it to + NPP_SetWindow (unless we're on Mac). + +2011-04-08 Jamie Cooley <james.cooley@nokia.com> + + Reviewed by Benjamin Poulain. + + [Qt][WK2] Make sure qwkhistory.h is copied into includes/WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=57945 + + * UIProcess/API/qt/WKView.h: + * UIProcess/API/qt/qwkhistory.h: + +2011-04-08 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Do not destroy WorkQueue event sources unless they have been cancelled + https://bugs.webkit.org/show_bug.cgi?id=57611 + + * Platform/WorkQueue.h: + * Platform/gtk/WorkQueueGtk.cpp: + (WorkQueue::EventSource::EventSource): Remove unused member + m_dispatchSource. + (WorkQueue::EventSource::executeEventSource): Make it return void + instead of boolean since we are always ignoring the return value. + (WorkQueue::EventSource::performWork): Return FALSE from the + callback only when the source has been cancelled (condition = 0) + to make sure it's destroyed when the even source handler is + unregistered. + (WorkQueue::registerEventSourceHandler): Use GRefPtr for the + source, to avoid leaking it. + (WorkQueue::scheduleWorkOnSource): Receive the source callback as + parameter so that it can be used by scheduleWorkOnTermination() too. + (WorkQueue::scheduleWork): + (WorkQueue::scheduleWorkAfterDelay): + (WorkQueue::scheduleWorkOnTermination): Use + scheduleWorkOnSource(). + +2011-04-08 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Close connection when web process finishes + https://bugs.webkit.org/show_bug.cgi?id=57540 + + * Platform/CoreIPC/Connection.h: + * Platform/CoreIPC/unix/ConnectionUnix.cpp: + * Platform/PlatformProcessIdentifier.h: Use GPid as process + identifier. + * Platform/WorkQueue.h: + * Platform/gtk/WorkQueueGtk.cpp: + (WorkQueue::EventSource::EventSource): Add cancellable parameter. + (WorkQueue::EventSource::cancel): New method to cancel the source. + (WorkQueue::EventSource::performWorkOnTermination): New method to + execute a work item called when child process has finished. + (WorkQueue::registerEventSourceHandler): Create a GCancellable for + the socket source. + (WorkQueue::unregisterEventSourceHandler): Cancel the source + instead of destroying it, this will cause the source to trigger + with condition = 0, which makes the callback return FALSE and the + source is destroyed. + (WorkQueue::scheduleWorkOnSource): Pass NULL as cancellable for + idle and timeout sources. + (WorkQueue::scheduleWorkOnTermination): Create a child watch + source to monitor the child process. + * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: + (WebKit::ProcessLauncher::launchProcess): Use GPid instead of int + as process identifier. + * UIProcess/WebProcessProxy.cpp: + (WebKit::WebProcessProxy::didFinishLaunching): Call + WorkQueue::scheduleWorkOnTermination() for GTK platform too when + web process has been launched. + +2011-04-08 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Implement scheduleWorkAfterDelay() in WorkQueueGtk + https://bugs.webkit.org/show_bug.cgi?id=57434 + + * Platform/WorkQueue.h: + * Platform/gtk/WorkQueueGtk.cpp: + (WorkQueue::EventSource::executeEventSource): This new method + contains the common code to execute a work item. + (WorkQueue::EventSource::performWorkOnce): Use + executeEventSource() to execute the work item. + (WorkQueue::EventSource::performWork): Use executeEventSource() to + execute the work item. + (WorkQueue::registerEventSourceHandler): Use a GSocket instead of + a GIOChannel since the API is newer and allows us to pass a + cancellable object to be able to cancel the source. + (WorkQueue::scheduleWorkOnSource): This new method contains the + common code to attach a source to a context. It doesn't use a lock + anymore, since g_source_attach() uses its own mutex internally. + (WorkQueue::scheduleWork): Use an idle source instead of a timeout + one, changing the priority to G_PRIORITY_DEFAULT. + (WorkQueue::scheduleWorkAfterDelay): Implement it using a timeout + source with the given delay. + +2011-04-08 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Use glib API instead of fork + execl in ProcessLauncherGtk + https://bugs.webkit.org/show_bug.cgi?id=57234 + + * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: + (WebKit::childSetupFunction): close the socket and use prctl() + when platform is Linux to kill the child process when the parent + finishes. + (WebKit::ProcessLauncher::launchProcess): Use g_spawn_async() to + launch the web process. + +2011-04-07 Geoffrey Garen <ggaren@apple.com> + + Some Handle<T> cleanup + https://bugs.webkit.org/show_bug.cgi?id=58109 + + * WebProcess/Plugins/Netscape/NPJSObject.cpp: + (WebKit::NPJSObject::NPJSObject): Updated for new null constructor. + +2011-04-07 Jessie Berlin <jberlin@apple.com> + + Max build fix. + + * WebProcess/WebCoreSupport/WebEditorClient.cpp: + (WebKit::WebEditorClient::checkSpellingOfString): + Do not risk an overflow. + (WebKit::WebEditorClient::checkGrammarOfString): + Ditto. + +2011-04-07 Jessie Berlin <jberlin@apple.com> + + Reviewed by Brian Weinstein. + + WebKit2: Implement TextChecker on Windows + https://bugs.webkit.org/show_bug.cgi?id=57862 + + Part 4: Implement checkGrammarOfString. + + * Scripts/webkit2/messages.py: + The generated files should include TextCheckerClient.h for WebCore::GrammarDetail. + + * Shared/API/c/win/WKBaseWin.h: + * Shared/APIObject.h: + * UIProcess/API/C/win/WKAPICastWin.h: + + * UIProcess/API/C/win/WKGrammarDetail.cpp: Added. + (WKGrammarDetailGetTypeID): + (WKGrammarDetailCreate): + * UIProcess/API/C/win/WKGrammarDetail.h: Added. + + * UIProcess/API/C/win/WKTextChecker.h: + Add the checkGrammarOfString WKTextCheckerClient function. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::checkGrammarOfString): + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: + + * UIProcess/TextChecker.h: + * UIProcess/win/TextCheckerWin.cpp: + (WebKit::TextChecker::checkGrammarOfString): + Call the TextCheckerClient. + * UIProcess/mac/TextCheckerMac.mm: + (WebKit::TextChecker::checkSpellingOfString): + Add a comment about this not being used on Mac. + (WebKit::TextChecker::checkGrammarOfString): + Ditto, and call notImplemented. + * UIProcess/gtk/TextCheckerGtk.cpp: + (WebKit::TextChecker::checkGrammarOfString): + Call notImplemented. + * UIProcess/qt/TextCheckerQt.cpp: + (WebKit::TextChecker::checkGrammarOfString): + Ditto. + + * UIProcess/win/WebGrammarDetail.cpp: Added. + (WebKit::WebGrammarDetail::create): + (WebKit::WebGrammarDetail::WebGrammarDetail): + Initialize the underlying WebCore::GrammarDetail. + * UIProcess/win/WebGrammarDetail.h: Added. + (WebKit::WebGrammarDetail::grammarDetail): + (WebKit::WebGrammarDetail::type): + + * UIProcess/win/WebTextCheckerClient.cpp: + (WebKit::WebTextCheckerClient::checkGrammarOfString): + Populate the Vector of WebCore::GrammarDetails with the WebGrammarDetails. + * UIProcess/win/WebTextCheckerClient.h: + + * WebProcess/WebCoreSupport/WebEditorClient.cpp: + (WebKit::WebEditorClient::checkSpellingOfString): + Use WTF::notFound as the initial value for resultLocation. + (WebKit::WebEditorClient::checkGrammarOfString): + Send a sync message to the UI Process (similar to checkSpellingOfString and checkTextOfParagraph). + + * win/WebKit2.vcproj: + Add WKGrammarDetail.h/.cpp and WebGrammarDetail.h/.cpp. + * win/WebKit2Generated.make: + Copy over WKGrammarDetail.h. + +2011-04-07 Enrica Casucci <enrica@apple.com> + + Reviewed by Oliver Hunt. + + REGRESSION(WebKit2): execCommand('undo') doesn't work (Windows). + https://bugs.webkit.org/show_bug.cgi?id=58056 + <rdar://problem/8862023> + + Adding support for execCommand('undo') and execCommand('redo') + in WebKit2 for Windows. + + * UIProcess/API/C/win/WKView.h: + * UIProcess/win/WebUndoClient.cpp: + (WebKit::WebUndoClient::canUndoRedo): + (WebKit::WebUndoClient::executeUndoRedo): + * UIProcess/win/WebUndoClient.h: + * UIProcess/win/WebView.cpp: + (WebKit::WebView::canUndoRedo): + (WebKit::WebView::executeUndoRedo): + +2011-04-07 Andrew Scherkus <scherkus@chromium.org> + + Revert ENABLE_TRACK patch due to compile failures. + + * Configurations/FeatureDefines.xcconfig: + +2011-04-07 Martin Robinson <mrobinson@igalia.com> + + Fix the WebKit2 GTK+ build for older versions of GTK+. + + * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: Include the GtkVersioning.h header. + +2011-04-07 Amruth Raj <amruthraj@motorola.com> and Martin Robinson <mrobinson@igalia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [GTK] Implement SharedMemory for WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=49791 + + Share the SharedMemory, Attachment and Connection implementations with the Qt port. + Both implementation are, in fact, general Unix implementations using standard Unix + domain sockets and sendmsg / recvmsg. This should reduce the amount of duplicated code + greatly and lay the groundwork for GTK+/Qt implementations for other operating systems. + + * GNUmakefile.am: Replaced GTK+ versions of files with the Unix ones. + * Platform/CoreIPC/ArgumentDecoder.cpp: Extended Qt #ifdefs to include GTK. + (CoreIPC::ArgumentDecoder::~ArgumentDecoder): + * Platform/CoreIPC/ArgumentEncoder.cpp: Ditto. + (CoreIPC::ArgumentEncoder::~ArgumentEncoder): + * Platform/CoreIPC/Attachment.h: Ditto. + * Platform/CoreIPC/Connection.h: Combined the GTK+ and Qt sections. + * Platform/CoreIPC/unix/AttachmentUnix.cpp: Renamed from Source/WebKit2/Platform/CoreIPC/qt/AttachmentQt.cpp. + * Platform/CoreIPC/unix/ConnectionUnix.cpp: Renamed from Source/WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp. + * Platform/unix/SharedMemoryUnix.cpp: Renamed from Source/WebKit2/Platform/qt/SharedMemoryQt.cpp. + * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: + (WebKit::ProcessLauncher::launchProcess): Use SOCK_DGRAM instead of SOCK_STREAM to match Qt. + * WebKit2.pro: Updated source list to reflect file renaming. + +2011-04-07 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Brian Weinstein. + + REGRESSION (r83081): Use of deallocated memory in WebEditorClient::respondToChangedSelection() + https://bugs.webkit.org/show_bug.cgi?id=58082 + + * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::respondToChangedSelection): + Now that the Range is used outside the full expression where it's created, it needs to be + protected with RefPtr. + +2011-04-07 Mark Rowe <mrowe@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/9251566> WebBackForwardList::createCFDictionaryRepresentation's current item index + doesn't account for items removed by filter callback. + + * UIProcess/cf/WebBackForwardListCF.cpp: + (WebKit::WebBackForwardList::createCFDictionaryRepresentation): Update the current item index + when we omit an item due to the filter callback. + +2011-04-07 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Anders Carlsson. + + REGRESSION (WebKit2): Reverse conversion doesn't work in Kotoeri + https://bugs.webkit.org/show_bug.cgi?id=58066 + <rdar://problem/8965302> + + * Scripts/webkit2/messages.py: + * Shared/mac/AttributedString.h: Added. + * Shared/mac/AttributedString.mm: Added. + (WebKit::AttributedString::encode): + (WebKit::AttributedString::decode): + Added an class that wraps NSAttributedString. As far as I can tell, one can't pass a CF + or NS object to another process without wrapping it in a C++ one. + + * Shared/mac/ArgumentCodersMac.h: Added. + * Shared/mac/ArgumentCodersMac.mm: Added. + Added coders for Foundation objects, similar to ArgumentCodersCF. There are two reasons why + these are needed: + 1) Even though most Foundation objects are toll free bridged with CF, CFGetTypeID() doesn't + work properly for them (I've been just getting 1). + 2) NSColor isn't toll free bridged to CF. + This adds just the types necessary for editing NSAttributedString (and I don't yet know what + happens with attachments). + + * UIProcess/API/mac/WKView.mm: (-[WKView attributedSubstringFromRange:]): + * UIProcess/WebPageProxy.h: + * UIProcess/mac/WebPageProxyMac.mm: + (WebKit::WebPageProxy::getAttributedSubstringFromRange): + * WebKit2.xcodeproj/project.pbxproj: + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: + Boilerplate code for making a sync call to web process. + + * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getAttributedSubstringFromRange): + Ported from WebHTMLView. + +2011-04-07 Jeff Miller <jeffm@apple.com> + + Mac build fix. + + * Shared/WebString.h: + (WebKit::WebString::getCharacters): Add explict cast when using std::min(). + +2011-04-07 Jeff Miller <jeffm@apple.com> + + Reviewed by Adam Roben. + + Replace WKStringGetCharactersPtr() with WKStringGetCharacters() + https://bugs.webkit.org/show_bug.cgi?id=58058 + + WKStringGetCharactersPtr() exposes the internal implementation of WKString, so change this to WKStringGetCharacters(), which makes a UTF-16 copy. + + * Shared/API/c/WKString.cpp: + (WKStringGetCharacters): Added, replaces WKStringGetCharactersPtr(). + * Shared/API/c/WKString.h: Replaced WKStringGetCharactersPtr() with WKStringGetCharacters(). + * Shared/WebString.h: + (WebKit::WebString::getCharacters): Added. + +2011-04-07 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Adam Roben. + + WebKit2: Support window bounce when panning. + https://bugs.webkit.org/show_bug.cgi?id=58065 + <rdar://problem/9244367> + + Make gestureDidScroll synchronous, as once we scroll, we need to know + whether or not we are at the beginning or end of the scrollable document. + + If we are at either end of the scrollable document, we call the Windows 7 + API to bounce the window to give an indication that you are past an end + of the document. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::gestureDidScroll): Pass a boolean for the reply, and return it. + * UIProcess/WebPageProxy.h: + * UIProcess/win/WebView.cpp: + (WebKit::WebView::WebView): Inititalize a new variable. + (WebKit::WebView::onGesture): Once we send the message to scroll, check if have gone to + an end of the document, and if we have, bounce the window. + * UIProcess/win/WebView.h: + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: GestureDidScroll is now sync. + * WebProcess/WebPage/win/WebPageWin.cpp: + (WebKit::WebPage::gestureDidScroll): When we are done scrolling, check if we have a vertical + scrollbar and if we are at the beginning or the end of the scrollable document. + +2011-04-07 Chang Shu <cshu@webkit.org> + + Reviewed by Darin Adler. + + WebKitTestRunner needs layoutTestController.isPageBoxVisible + https://bugs.webkit.org/show_bug.cgi?id=42695 + + * WebProcess/InjectedBundle/API/c/WKBundle.cpp: + (WKBundleIsPageBoxVisible): + * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::isPageBoxVisible): + * WebProcess/InjectedBundle/InjectedBundle.h: + +2011-04-07 Enrica Casucci <enrica@apple.com> + + Reviewed by Oliver Hunt. + + REGRESSION(WebKit2): execCommand('undo') doesn't work (Mac). + https://bugs.webkit.org/show_bug.cgi?id=58055 + <rdar://problem/8862023> + + Adding support for execCommand('undo') and execCommand('redo') + in WebKit2 for Mac. + + * UIProcess/API/mac/PageClientImpl.h: + * UIProcess/API/mac/PageClientImpl.mm: + (WebKit::PageClientImpl::canUndoRedo): Added interaction with undomanager. + (WebKit::PageClientImpl::executeUndoRedo): Added interaction with undomanager. + + Added new empty PageClient methods for other platforms. + * UIProcess/API/qt/qwkpage.cpp: + (QWKPagePrivate::canUndoRedo): + (QWKPagePrivate::executeUndoRedo): + * UIProcess/API/qt/qwkpage_p.h: + * UIProcess/PageClient.h: + * UIProcess/gtk/WebView.cpp: + (WebKit::WebView::canUndoRedo): + (WebKit::WebView::executeUndoRedo): + * UIProcess/gtk/WebView.h: + * UIProcess/win/WebView.cpp: + (WebKit::WebView::canUndoRedo): + (WebKit::WebView::executeUndoRedo): + * UIProcess/win/WebView.h: + + * UIProcess/WebEditCommandProxy.cpp: + (WebKit::WebEditCommandProxy::unapply): Added flag to allow dispatching + of asychronous messages while waiting for a sync message reply. + (WebKit::WebEditCommandProxy::reapply): Same as above. + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::canUndoRedo): + (WebKit::WebPageProxy::executeUndoRedo): + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: + * WebProcess/WebCoreSupport/WebEditorClient.cpp: Added missing implementation. + (WebKit::WebEditorClient::canUndo): + (WebKit::WebEditorClient::canRedo): + (WebKit::WebEditorClient::undo): + (WebKit::WebEditorClient::redo): + +2011-04-07 Brady Eidson <beidson@apple.com> + + Reviewed by Maciej Stachowiak. + + <rdar://problem/9250368> and https://bugs.webkit.org/show_bug.cgi?id=58062 + + * UIProcess/API/C/WKIconDatabase.cpp: + (WKIconDatabaseClose): + * UIProcess/API/C/WKIconDatabase.h: + + * UIProcess/WebIconDatabase.cpp: + (WebKit::WebIconDatabase::close): + * UIProcess/WebIconDatabase.h: + +2011-04-07 Jessie Berlin <jberlin@apple.com> + + Reviewed by Adam Roben. + + WebKit2: Implement TextChecker on Windows + https://bugs.webkit.org/show_bug.cgi?id=57862 + + Part 3: Implement checkSpellingOfString + + In WebCore, checkTextOfParagraph is only defined and used on platforms where + WTF_USE_UNIFIED_TEXT_CHECKING is defined (which right now is only non-Leopard and non-Tiger + Mac builds). + + On other platforms, checkSpellingOfString and checkGrammarOfString (coming in a separate + patch in an attempt to keep things easier to review) are used. + + * UIProcess/API/C/win/WKTextChecker.h: + * UIProcess/TextChecker.h: + Surround checkTextOfParagraph by #if USE(UNIFIED_TEXT_CHECKING) and add + checkSpellingOfString. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::checkTextOfParagraph): + Surround this by #if USE(UNIFIED_TEXT_CHECKING). + (WebKit::WebPageProxy::checkSpellingOfString): + Call through to the client. + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: + Surround checkTextOfParagraph by #if USE(UNIFIED_TEXT_CHECKING) and add + checkSpellingOfString. + + * UIProcess/win/TextCheckerWin.cpp: + (WebKit::TextChecker::checkSpellingOfString): + Call through to the WebTextCheckerClient. + * UIProcess/mac/TextCheckerMac.mm: + (WebKit::TextChecker::checkTextOfParagraph): + Surround this by #if USE(UNIFIED_TEXT_CHECKING) for clarity. + (WebKit::TextChecker::checkSpellingOfString): + Add a call to notImplemented. + * UIProcess/qt/TextCheckerQt.cpp: + (WebKit::TextChecker::checkSpellingOfString): + Ditto, and remove the implementation for checkTextOfParagraph. + * UIProcess/gtk/TextCheckerGtk.cpp: + (WebKit::TextChecker::checkSpellingOfString): + Ditto. + + * UIProcess/win/WebTextCheckerClient.cpp: + (WebKit::WebTextCheckerClient::checkSpellingOfString): + * UIProcess/win/WebTextCheckerClient.h: + + * WebProcess/WebCoreSupport/WebEditorClient.cpp: + (WebKit::WebEditorClient::checkSpellingOfString): + Send a sync message to the UI Process (similar to the sync message used for + checkTextOfParagraph). + +2011-04-07 Siddharth Mathur <siddharth.mathur@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt][WK2][Symbian] Temporary build fix until native Symbian IPC is done. Implement fake socketpair() as it's not available. + https://bugs.webkit.org/show_bug.cgi?id=57877 + + * UIProcess/Launcher/qt/ProcessLauncherQt.cpp: + (WebKit::socketpair): socketpair() which returns -1 + +2011-04-07 Michael Saboff <msaboff@apple.com> + + Reviewed by Maciej Stachowiak. + + WebKit2: Memory leak in decodeResourceError + https://bugs.webkit.org/show_bug.cgi?id=58004 + + Release the local NSError after it is used to create a ResourceError + object assigned to the reference argument. + + * Shared/mac/WebCoreArgumentCodersMac.mm: + (CoreIPC::decodeResourceError): + +2011-04-07 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Adam Barth. + + Remove temporary WebProcess sandbox rules that are unnecessary now that plugins are in their own process + https://bugs.webkit.org/show_bug.cgi?id=58023 + + * WebProcess/com.apple.WebProcess.sb: + +2011-04-07 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Dan Bernstein. + + Remove some no longer needed WebProcess sandbox allowances + https://bugs.webkit.org/show_bug.cgi?id=58015 + <rdar://problem/9232592> + + * WebProcess/com.apple.WebProcess.sb: Remove no-longer needed extra network + and launching privileges, since the bugs that required them are fixed. + +2011-04-06 Chang Shu <cshu@webkit.org> + + Reviewed by Darin Adler. + + WebKitTestRunner needs layoutTestController.pageSizeAndMarginsInPixels + https://bugs.webkit.org/show_bug.cgi?id=57984 + + * WebProcess/InjectedBundle/API/c/WKBundle.cpp: + (WKBundlePageSizeAndMarginsInPixels): + * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::pageSizeAndMarginsInPixels): + * WebProcess/InjectedBundle/InjectedBundle.h: + +2011-04-06 Siddharth Mathur <siddharth.mathur@nokia.com> + + Reviewed by Benjamin Poulain. + + [Qt][WK2][Symbian] Remove use of stack arrays with variable size + https://bugs.webkit.org/show_bug.cgi?id=57877 + + For better compiler portability, use new/delete for arrays when size + isn't known at compile time. Also fix one compiler warning about bitshift + operations on signed integers. + * Platform/CoreIPC/qt/ConnectionQt.cpp: + (CoreIPC::Connection::readyReadHandler): + (CoreIPC::Connection::sendOutgoingMessage): + +2011-04-06 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Adam Roben. + + WebKit2: Support Windows 7 Gestures + https://bugs.webkit.org/show_bug.cgi?id=49824 + <rdar://problem/8689728> + + Port code from WebKit1 -> WebKit2 to handle Windows 7 gestures. + + The UIProcess gets a WM_GESTURENOTIFY message, it sends a sync message to the WebProcess to ask + if we should allow panning. The WebProcess checks if we're in a scrollable area, and the mouse + isn't over a scrollbar. + + The UIProcess then gets a WM_GESTURE message, and if it is a pan gesture, it sends a message to + the WebProcess to scroll by the amount fingers have moved since the last WM_GESTURE messeage. The + X and Y are reversed because panning up -> moving the page down, and vice versa. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::gestureWillBegin): Send a sync message to the WebProcess + to initialize the gesture. The WebProcess returns whether or not we can start a pan + gesture from where we are. + (WebKit::WebPageProxy::gestureDidScroll): Send a message to the WebProcess to scroll by + pan gesture. + (WebKit::WebPageProxy::gestureDidEnd): Send a message to the WebProcess that the gesture has ended. + * UIProcess/WebPageProxy.h: + * UIProcess/win/WebView.cpp: + (WebKit::WebView::wndProc): Add WM_GESTURE and WM_GESTURENOTIFY handlers. + (WebKit::WebView::WebView): Initialize two new variables. + (WebKit::WebView::onGestureNotify): Figure out which gestures we should support based on where + the gesture is beginning. + (WebKit::WebView::onGesture): Support starting a gesture, ending a gesture, and panning. + * UIProcess/win/WebView.h: + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: Add messages needed for gestures. + * WebProcess/WebPage/win/WebPageWin.cpp: + (WebKit::WebPage::gestureWillBegin): Set the node that the gesture started on (so we + know which layer to scroll if the user pans), and determine whether or not we should allow + panning. If the page can't scroll, or the user is on a scrollbar, disallow panning. + (WebKit::WebPage::gestureDidScroll): Scroll the enclosing layer of the element the gesture + started on. + (WebKit::WebPage::gestureDidEnd): Clear the node the gesture started on. + +2011-04-06 Jeff Miller <jeffm@apple.com> + + Reviewed by Adam Roben. + + Add WKStringGetCharactersPtr() and WKStringGetLength() to WebKit2 C API + https://bugs.webkit.org/show_bug.cgi?id=57989 + + Note that WKChar, which is returned by WKStringGetCharactersPtr(), is defined the same way we define JSChar in JSStringRef.h. + + * Shared/API/c/WKString.cpp: + (WKStringGetLength): Added. + (WKStringGetCharactersPtr): Added. + * Shared/API/c/WKString.h: Define WKChar and added WKStringGetLength() and WKStringGetCharactersPtr(). + * Shared/WebString.h: + (WebKit::WebString::length): Added. + (WebKit::WebString::characters): Added. + +2011-04-06 Anders Carlsson <andersca@apple.com> + + Reviewed by Oliver Hunt. + + Dock stays in front of Hulu.com full screen video output + https://bugs.webkit.org/show_bug.cgi?id=57988 + <rdar://problem/9216260> + + Instead of using -[NSMenu setMenuBarVisible:] to toggle full screen, use + -[NSApp setPresentationOptions:]. Also, make the UI process the front most app before + setting the presentation options when exiting full screen, otherwise the dock won't + be restored correctly. + + * PluginProcess/mac/PluginProcessShim.mm: + Remove some shim functions that aren't needed. + + * UIProcess/Plugins/PluginProcessProxy.cpp: + (WebKit::PluginProcessProxy::PluginProcessProxy): + Initialize m_preFullscreenAppPresentationOptions. + + * UIProcess/Plugins/PluginProcessProxy.h: + Add m_preFullscreenAppPresentationOptions. + + * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: + (WebKit::PluginProcessProxy::enterFullscreen): + Change the presentation options for the app. + + (WebKit::PluginProcessProxy::exitFullscreen): + Restore the presentation options. + +2011-04-06 Mark Rowe <mrowe@apple.com> + + Reviewed by Darin Adler. + + Expose the original URL of a WKBackForwardListItem. + + Needed for <rdar://problem/9074651>. + + * UIProcess/API/C/WKBackForwardListItem.cpp: + (WKBackForwardListItemCopyOriginalURL): + * UIProcess/API/C/WKBackForwardListItem.h: + +2011-04-06 Brady Eidson <beidson@apple.com> + + Reviewed by Anders Carlsson. + + https://bugs.webkit.org/show_bug.cgi?id=57973 and https://bugs.webkit.org/show_bug.cgi?id=57973 + WK2 icon database should be able to get a CGImage of a specific size + + * UIProcess/API/C/cg/WKIconDatabaseCG.cpp: + (WKIconDatabaseTryGetCGImageForURL): Change this API to take a requested size, and find the first matching + CGImage in the icon. + * UIProcess/API/C/cg/WKIconDatabaseCG.h: + +2011-04-06 Jessie Berlin <jberlin@apple.com> + + Reviewed by Anders Carlsson. + + WebKit2: Implement TextChecker on Windows + https://bugs.webkit.org/show_bug.cgi?id=57862 + + Part 2: Implement uniqueSpellDocumentTag and closeSpellDocumentWithTag. + + * UIProcess/API/C/win/WKTextChecker.h: + * UIProcess/win/TextCheckerWin.cpp: + (WebKit::TextChecker::uniqueSpellDocumentTag): + (WebKit::TextChecker::closeSpellDocumentWithTag): + * UIProcess/win/WebTextCheckerClient.cpp: + (WebKit::WebTextCheckerClient::uniqueSpellDocumentTag): + (WebKit::WebTextCheckerClient::closeSpellDocumentWithTag): + * UIProcess/win/WebTextCheckerClient.h: + +2011-04-06 Robert Sesek <rsesek@chromium.org> + + Reviewed by Alexey Proskuryakov. + + Move code duplicated between the WebKit/mac and WebKit2 down to WebCore because Chromium will need it too + https://bugs.webkit.org/show_bug.cgi?id=54969 + + * WebProcess/WebCoreSupport/WebEditorClient.cpp: + (WebKit::WebEditorClient::respondToChangedSelection): Moved duplicated code to WebCore + * WebProcess/WebPage/mac/WebPageMac.mm: Moved duplicated code to WebCore + (WebKit::WebPage::getMarkedRange): + (WebKit::WebPage::getSelectedRange): + (WebKit::WebPage::characterIndexForPoint): + (WebKit::WebPage::performDictionaryLookupAtLocation): + +2011-04-06 Chang Shu <cshu@webkit.org> + + Reviewed by Darin Adler. + + WebKitTestRunner needs layoutTestController.pageNumberForElementById + https://bugs.webkit.org/show_bug.cgi?id=42329 + + * WebProcess/InjectedBundle/API/c/WKBundle.cpp: + (WKBundlePageNumberForElementById): + * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::pageNumberForElementById): + * WebProcess/InjectedBundle/InjectedBundle.h: + +2011-04-05 Enrica Casucci <enrica@apple.com> + + Reviewed by Darin Adler. + + REGRESSION: Drag & Drop Gmail Attachments doesn't work. + https://bugs.webkit.org/show_bug.cgi?id=57909 + <rdar://problem/9103220> + + Added _hitTest method to support drag and drop when the drag types cannot be matched. + This is the case for elements that do not place content + in the drag pasteboard automatically when the drag start (i.e. dragging a DIV element). + + * UIProcess/API/mac/WKView.mm: + (-[WKView _hitTest:dragTypes:]): Added. + +2011-04-06 Csaba Osztrogonác <ossy@webkit.org> + + Reviewed by Darin Adler. + + Fix using UNUSED_PARAM introduced in r82907 + https://bugs.webkit.org/show_bug.cgi?id=57940 + + * WebProcess/ResourceCache/WebResourceCacheManager.cpp: + (WebKit::WebResourceCacheManager::clearCacheForOrigin): + +2011-04-06 Jessie Berlin <jberlin@apple.com> + + Reviewed by Anders Carlsson. + + WebKit2: Implement TextChecker on Windows + https://bugs.webkit.org/show_bug.cgi?id=57862 + + Part 1: Get and set the state. + + * Shared/API/c/win/WKBaseWin.h: + * Shared/APIObject.h: + * UIProcess/API/C/win/WKAPICastWin.h: + + * UIProcess/API/C/win/WKTextChecker.cpp: Added. + (WKTextCheckerSetClient): + (WKTextCheckerContinuousSpellCheckingEnabledStateChanged): + (WKTextCheckerGrammarCheckingEnabledStateChanged): + * UIProcess/API/C/win/WKTextChecker.h: Added. + + * UIProcess/TextChecker.h: + * UIProcess/win/TextCheckerWin.cpp: + (WebKit::TextChecker::state): + Do the initalization for the state only once so that it is not necessary to call the client + every time the state is requested. + (WebKit::TextChecker::isContinuousSpellCheckingAllowed): + Call the client. + (WebKit::TextChecker::setContinuousSpellCheckingEnabled): + Update the state and tell the client. + (WebKit::TextChecker::setGrammarCheckingEnabled): + Ditto. + (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged): + Update the state. + (WebKit::TextChecker::grammarCheckingEnabledStateChanged): + Update the state. + + * UIProcess/win/WebTextChecker.cpp: Added. + (WebKit::WebTextChecker::shared): + Make the WebTextChecker available globally. + (WebKit::WebTextChecker::WebTextChecker): + (WebKit::WebTextChecker::setClient): + (WebKit::updateStateForAllWebProcesses): + (WebKit::WebTextChecker::continuousSpellCheckingEnabledStateChanged): + Tell the TextChecker that the state has changed, and then tell the + WebProcessProxies to send the new state to the WebProcesses. + (WebKit::WebTextChecker::grammarCheckingEnabledStateChanged): + Ditto. + * UIProcess/win/WebTextChecker.h: Added. + (WebKit::WebTextChecker::client): + (WebKit::WebTextChecker::type): + + * UIProcess/win/WebTextCheckerClient.cpp: Added. + (WebKit::WebTextCheckerClient::continuousSpellCheckingAllowed): + (WebKit::WebTextCheckerClient::continuousSpellCheckingEnabled): + (WebKit::WebTextCheckerClient::setContinuousSpellCheckingEnabled): + (WebKit::WebTextCheckerClient::grammarCheckingEnabled): + (WebKit::WebTextCheckerClient::setGrammarCheckingEnabled): + * UIProcess/win/WebTextCheckerClient.h: Added. + + * win/WebKit2.vcproj: + Add WKTextChecker.h/.cpp, WebTextChecker.h/.cpp, and WebTextCheckerClient.h/.cpp. + * win/WebKit2Generated.make: + Copy over WKTextChecker.h. + +2011-04-05 Chang Shu <cshu@webkit.org> + + Reviewed by Darin Adler. + + WebKitTestRunner needs layoutTestController.numberOfPages + https://bugs.webkit.org/show_bug.cgi?id=42694 + + * WebProcess/InjectedBundle/API/c/WKBundle.cpp: + (WKBundleNumberOfPages): + * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::numberOfPages): + * WebProcess/InjectedBundle/InjectedBundle.h: + +2011-04-05 Darin Adler <darin@apple.com> + + Reviewed by Alexey Proskuryakov. + + [Mac] WebKit2: Escape key does not stop page loads when focus is on the web page + https://bugs.webkit.org/show_bug.cgi?id=57893 + <rdar://problem/9130486> + + * UIProcess/API/mac/PageClientImpl.h: Added executeSavedCommandBySelector. + * UIProcess/API/mac/PageClientImpl.mm: Renamed internal Objective-C classes to use + the WebKit2 Objective-C class prefix, WK, rather than the WebKit1 Objective-C class + prefix, Web. Removed some unneeded explicit WebKit namespace prefixes. + (-[WKEditCommandObjC initWithWebEditCommandProxy:]): Removed unneeded WebKit + namespace prefix. + (-[WKEditCommandObjC command]): Ditto. + (-[WKEditorUndoTargetObjC undoEditing:]): Updated for new class name. + (-[WKEditorUndoTargetObjC redoEditing:]): Ditto. + (WebKit::PageClientImpl::PageClientImpl): Ditto. + (WebKit::PageClientImpl::registerEditCommand): Ditto. + (WebKit::PageClientImpl::executeSavedCommandBySelector): Added. + + * UIProcess/API/mac/WKView.mm: Renamed internal Objective-C categories to use the + WebKit2 Objective-C prefix, WK, rather than the WebKit1 Objective-C prefix, Web, + or no prefix at all. Tweaked use of extern "C" a little. + (-[WKView doCommandBySelector:]): Tweaked the comment. + (-[WKView _executeSavedCommandBySelector:]): Added. For use when command is not handled + by WebCore. + (-[WKResponderChainSink initWithResponderChain:]): Added. Based on the + WebResponderChainSink class in WebKit1. + (-[WKResponderChainSink detach]): Added. + (-[WKResponderChainSink didReceiveUnhandledCommand]): Added. + (-[WKResponderChainSink noResponderFor:]): Added. + (-[WKResponderChainSink doCommandBySelector:]): Added. + (-[WKResponderChainSink tryToPerform:with:]): Added. + + * UIProcess/API/mac/WKViewInternal.h: Added declaration of _executeSavedCommandBySelector: + method. Also removed unneeded includes. + + * UIProcess/PageClient.h: Added executeSavedCommandBySelector. + * UIProcess/WebPageProxy.h: Added executeSavedCommandBySelector. + * UIProcess/WebPageProxy.messages.in: Added ExecuteSavedCommandBySelector. + + * UIProcess/mac/WebFullScreenManagerProxyMac.mm: Updated includes. + + * UIProcess/mac/WebPageProxyMac.mm: + (WebKit::WebPageProxy::executeSavedCommandBySelector): Added. + + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::executeKeypressCommandsInternal): Send the synchronous + ExecuteSavedCommandBySelector message when a command is not handled by WebCore. + +2011-04-05 Anders Carlsson <andersca@apple.com> + + Reviewed by Alexey Proskuryakov. + + Some plug-in content is displayed upside down in Unity plug-in + https://bugs.webkit.org/show_bug.cgi?id=57895 + <rdar://problem/9212003> + + Create the flipped geometry layer in the web process instead of the plug-in process, + which matches what we do in WebKit1. + + * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: + (WebKit::NetscapePlugin::platformPostInitialize): + * WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm: + (WebKit::PluginProxy::pluginLayer): + +2011-04-05 Anders Carlsson <andersca@apple.com> + + Reviewed by Darin Adler. + + Assertion failure when navigating quickly between file URLs + https://bugs.webkit.org/show_bug.cgi?id=57884 + <rdar://problem/9080559> + + Remove bogus assertion. The pending provisional sandbox extension can be + non-null if the current provisional load fails because we're about to load a new + page that also has a sandbox extension. + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad): + +2011-04-05 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Grant the web process access to ~/Library/Preferences/com.apple.universalaccess.plist + https://bugs.webkit.org/show_bug.cgi?id=57879 + + The web process needs access to the unviersal access preferences to determine if full keyboard + access is enabled. I've filed <rdar://problem/9237619> which tracks reading this preference in the UI + process and sending it over to the web process whenever it changes. + + * WebProcess/com.apple.WebProcess.sb: + +2011-04-05 Dean Jackson <dino@apple.com> + + Reviewed by Simon Fraser. + + Add parentheses around && within || to avoid clang warning. + + * WebProcess/WebPage/DrawingAreaImpl.cpp: + (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState): + +2011-04-05 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Add two more entries to the sandbox profile + https://bugs.webkit.org/show_bug.cgi?id=57875 + + Allow read-access to /Library/Dictionaries since WebCore::nextBreakablePosition + ends up calling into ICU which accesses the dictionary. + + Allow Mach access to com.apple.networkd since it's used by CFNetwork. + + * WebProcess/com.apple.WebProcess.sb: + +2011-04-05 Anders Carlsson <andersca@apple.com> + + Reviewed by Oliver Hunt. + + Invalidate callbacks if the WebPageProxy is no longer valid + https://bugs.webkit.org/show_bug.cgi?id=57873 + <rdar://problem/9059717> + + Audit all function calls that take callbacks and make sure to invalidate the callbacks + if the web page is no longer valid. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::runJavaScriptInMainFrame): + (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): + (WebKit::WebPageProxy::getSourceForFrame): + (WebKit::WebPageProxy::getContentsAsString): + (WebKit::WebPageProxy::getSelectionOrContentsAsString): + (WebKit::WebPageProxy::getMainResourceDataOfFrame): + (WebKit::WebPageProxy::getResourceDataFromFrame): + (WebKit::WebPageProxy::getWebArchiveOfFrame): + (WebKit::WebPageProxy::forceRepaint): + (WebKit::WebPageProxy::computePagesForPrinting): + (WebKit::WebPageProxy::drawRectToPDF): + (WebKit::WebPageProxy::drawPagesToPDF): + +2011-04-05 Adam Roben <aroben@apple.com> + + Disable accelerated compositing on Windows machines that don't support it + + This includes machines without the necessary graphics hardware, and machines without + WebKitQuartzCoreAdditions (like the Windows 7 Release (WebKit2 Tests) bots). + + Fixes <http://webkit.org/b/57870> REGRESSION (r82960): Lots of tests crashing in + DrawingAreaImpl::enterAcceleratedCompositingMode on Windows 7 Release (WebKit2 Tests) + + Reviewed by Anders Carlsson. + + * WebProcess/WebPage/LayerTreeHost.h: + (WebKit::LayerTreeHost::supportsAcceleratedCompositing): Added. On platforms other than + Windows, this always returns true. + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): Only enable accelerated compositing-related + preferences if the machine supports accelerated compositing. + + * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp: + (WebKit::LayerTreeHostCAWin::supportsAcceleratedCompositing): Added. Creates a view, asks it + if it can draw, and returns the result. + + * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h: Added supportsAcceleratedCompositing. + + * WebProcess/WebPage/win/LayerTreeHostWin.cpp: Added. + (WebKit::LayerTreeHost::supportsAcceleratedCompositing): Added. Calls through to + LayerTreeHostCAWin in configurations that support that class. Otherwise just returns false. + + * win/WebKit2.vcproj: Added LayerTreeHostWin.cpp. Let VS reorder some other files. + +2011-04-05 Adam Roben <aroben@apple.com> + + Make accelerated compositing work in WebKit2 on Windows + + LayerTreeHostCAWin uses WKCACFView to render each frame to an image, then has + DrawingAreaImpl send that image over to the UI process (just like it does for + non-accelerated rendering). It's unfortunate that this requires reading every frame back + from the GPU into system memory. More efficient solutions can be explored in the future. + + Fixes <http://webkit.org/b/45567>. + + Reviewed by Anders Carlsson. + + * DerivedSources.make: Added $(WebKit2) to the VPATH so that DerivedSources.make can be + found when used as a target dependency. Added rules to generate a HeaderDetection.h file on + Windows. If we can find WebKitQuartzCoreAdditions headers, we define HAVE_WKQCA in + HeaderDetection.h. + + * WebProcess/WebPage/DrawingAreaImpl.cpp: + (WebKit::DrawingAreaImpl::setLayerHostNeedsDisplay): + * WebProcess/WebPage/DrawingAreaImpl.h: + Added setLayerHostNeedsDisplay. Lets the layer host tell the DrawingAreaImpl that it has a + new frame to render. This should only be called by layer hosts that participate in + DrawingAreaImpl's display mechanism. + + * WebProcess/WebPage/LayerTreeHost.cpp: + (WebKit::LayerTreeHost::create): Only try to instantiate LayerTreeHostCAWin if we have + WebKitQuartzCoreAdditions, since it depends on that library. + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): Removed code that forced accelerated compositing to be + disabled on Windows. + + * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp: + (WebKit::registerDummyWindowClass): Registers the window class we use for the dummy window. + (WebKit::createDummyWindow): Creates the dummy window we pass to WKCACFView so that D3D can + determine the display mode, etc. (The window is never shown on screen.) + (WebKit::LayerTreeHostCAWin::LayerTreeHostCAWin): Initialize new members. + (WebKit::LayerTreeHostCAWin::platformInitialize): Create our dummy window and view and + associate the two. We set ourselves as the view's context's user data so that + PlatformCALayer can get our AbstractCACFLayerTreeHost pointer as needed. + (WebKit::LayerTreeHostCAWin::invalidate): Cancel any pending flushes, tear down our view, + and destroy the dummy window if no other layer host is using it. + (WebKit::LayerTreeHostCAWin::scheduleLayerFlush): Ask LayerChangesFlusher to call us back + soon to perform the flush. + (WebKit::LayerTreeHostCAWin::participatesInDisplay): Added. Returns true, since we render + each frame to an image. + (WebKit::LayerTreeHostCAWin::needsDisplay): Added. Returns true if it's now time to + displayReturns true if it's now time to display. + (WebKit::LayerTreeHostCAWin::timeUntilNextDisplay): Added. Returns how many seconds remain + before we need to display again. + (WebKit::size): Added. Helper function to get the size of a WKCACFImage. + (WebKit::toShareableBitmap): Added. Helper function to convert a WKCACFImage to a + ShareableBitmap. + (WebKit::LayerTreeHostCAWin::display): Added. Renders the next frame to an image and stuffs + the image into the UpdateInfo struct. + (WebKit::LayerTreeHostCAWin::sizeDidChange): Added. Tells the view about the new size. + (WebKit::LayerTreeHostCAWin::forceRepaint): Added. Flushes any pending changes to the view. + (WebKit::LayerTreeHostCAWin::contextDidChangeCallback): Added. WKCACFView calls this + whenever any changes made to the view or its layer tree have been flushed. Just calls + through to contextDidChange. + (WebKit::LayerTreeHostCAWin::contextDidChange): Added. Tells layers that they've started + animating, and tells the DrawingAreaImpl that we need to display again. + (WebKit::LayerTreeHostCAWin::rootLayer): Added. Gets the root layer's PlatformCALayer. + (WebKit::LayerTreeHostCAWin::addPendingAnimatedLayer): Added. Stores the layer so that we + can tell it animations have started the next time we get a contextDidChange callback. + (WebKit::LayerTreeHostCAWin::layerTreeDidChange): Added. Schedules a flush, unless we're + already in the process of flushing. This code came from WebCore::WKCACFViewLayerTreeHost. + (WebKit::LayerTreeHostCAWin::flushPendingLayerChangesNow): Added. Performs the flush. This + code was adapted from WebCore::WKCACFViewLayerTreeHost. + + * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h: Wrapped this whole header in HAVE(WKQCA), + since this class only works when WebKitQuartzCoreAdditions is available. Added a bunch of + new members. + +2011-04-04 Adam Roben <aroben@apple.com> + + Add a way for LayerTreeHost to participate in DrawingAreaImpl's normal display mechanism + + When LayerTreeHost participates in display, it renders each frame into a bitmap. + DrawingAreaImpl sends the bitmap to the UI process in an Update message, just like in + non-accelerated compositing mode. The UI process never knows that accelerated compositing is + going on. (When LayerTreeHost does not participate in display, as on Mac, it is responsible + for getting bits from the web process to the UI process.) + + No LayerTreeHost uses this mechanism (yet). This patch should cause no change in behavior. + + Fixes <http://webkit.org/b/57792> LayerTreeHost needs a way to render frames to a bitmap + + Reviewed by Anders Carlsson. + + * WebProcess/WebPage/DrawingAreaImpl.cpp: + (WebKit::DrawingAreaImpl::forceRepaint): If the layer tree host participates in display, + perform a display (like in the non-accelerated case). + (WebKit::DrawingAreaImpl::layerHostDidFlushLayers): Don't send an + EnterAcceleratedCompositing message to the UI process if the layer tree host participates in + display. In that case, the UI process doesn't even need to know we're using accelerated + compositing in the web process. + (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState): Go through the normal display + mechanism if we have a layer tree host that participates in display. + (WebKit::DrawingAreaImpl::didUpdate): Don't ignore DidUpdate messages when we have a layer + tree host that participates in display. + (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode): If the new layer tree host + participates in display, let the display timer continue to run and continue to expect + DidUpdate messages so that we don't interrupt the normal display mechanism. We still clear + out m_dirtyRegion, m_scrollRect, and m_scrollOffset, though, because the layer tree host is + still responsible for keeping track of those things even when it participates in display. + (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): If the outgoing layer tree host + was participating in display, just send another Update message instead of an + ExitAcceleratedCompositing message, since the UI process never even knew we were using + accelerated compositing. + (WebKit::DrawingAreaImpl::displayTimerFired): If we have a layer tree host that's + participating in display, ask it when it next needs to display when scheduling our timer. + + (WebKit::DrawingAreaImpl::scheduleDisplay): + (WebKit::DrawingAreaImpl::display): + If we have a layer tree host that's participating in display, it will keep track of its own + dirty region, so ask it if it needs display rather than checking our own dirty region. + + (WebKit::DrawingAreaImpl::display): If we have a layer tree host that's participating in + display, don't bail out. Instead, tell it to display rather than asking the page to paint. + Moved the setting of updateInfo.viewSize earlier so that it will be set even when the layer + tree host is displaying. Other changes are just due to indentation. + + * WebProcess/WebPage/LayerTreeHost.h: + (WebKit::LayerTreeHost::participatesInDisplay): + (WebKit::LayerTreeHost::needsDisplay): + (WebKit::LayerTreeHost::timeUntilNextDisplay): + (WebKit::LayerTreeHost::display): + Stubbed out these functions. Derived classes can override them to participate in display. + +2011-04-04 MORITA Hajime <morrita@google.com> + + Reviewed by Ryosuke Niwa. + + [Refactoring] SpellCheckingResult should be replaced with TextCheckingResult + https://bugs.webkit.org/show_bug.cgi?id=56085 + + * WebProcess/WebCoreSupport/WebEditorClient.cpp: + (WebKit::WebEditorClient::requestCheckingOfString): + * WebProcess/WebCoreSupport/WebEditorClient.h: + * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: + (WebKit::WebEditorClient::checkTextOfParagraph): + +2011-04-05 Alejandro G. Castro <alex@igalia.com> + + Another compilation fix after r82929 horrible patch merge. + + * UIProcess/WebPageProxy.messages.in: + +2011-04-05 Alejandro G. Castro <alex@igalia.com> + + Fix compilation error after r82929. + + * WebProcess/WebPage/WebPage.h: + +2011-04-05 Amruth Raj <amruthraj@motorola.com>, Ravi Phaneendra Kasibhatla <ravi.kasibhatla@motorola.com> and Alejandro G. Castro <alex@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Implement WebPage class for WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=54230 + + Added functions to handle the generation of commands from the + keycodes. + + * GNUmakefile.am: + * Scripts/webkit2/messages.py: + * UIProcess/PageClient.h: + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: + * UIProcess/gtk/WebPageProxyGtk.cpp: + (WebKit::WebPageProxy::getEditorCommandsForKeyEvent): + * UIProcess/gtk/WebView.cpp: + (WebKit::backspaceCallback): + (WebKit::selectAllCallback): + (WebKit::cutClipboardCallback): + (WebKit::copyClipboardCallback): + (WebKit::pasteClipboardCallback): + (WebKit::toggleOverwriteCallback): + (WebKit::popupMenuCallback): + (WebKit::showHelpCallback): + (WebKit::deleteFromCursorCallback): + (WebKit::moveCursorCallback): + (WebKit::WebView::WebView): + (WebKit::WebView::getEditorCommandsForKeyEvent): + * UIProcess/gtk/WebView.h: + (WebKit::WebView::addPendingEditorCommand): + * WebProcess/WebCoreSupport/WebEditorClient.cpp: + * WebProcess/WebCoreSupport/WebEditorClient.h: + * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: Added. + (WebKit::WebEditorClient::getEditorCommandsForKeyEvent): + (WebKit::WebEditorClient::executePendingEditorCommands): + (WebKit::WebEditorClient::handleKeyboardEvent): + (WebKit::WebEditorClient::handleInputMethodKeydown): + * WebProcess/WebPage/WebPage.cpp: + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/gtk/WebPageGtk.cpp: Added. + (WebKit::WebPage::platformInitialize): + (WebKit::WebPage::platformPreferencesDidChange): + (WebKit::scroll): + (WebKit::WebPage::performDefaultBehaviorForKeyEvent): + (WebKit::WebPage::platformHasLocalDataForURL): + (WebKit::WebPage::cachedResponseMIMETypeForURL): + (WebKit::WebPage::platformCanHandleRequest): + +2011-04-05 Csaba Osztrogonác <ossy@webkit.org> + + Remove duplicate API from WKContext + <rdar://problem/8727879> + https://bugs.webkit.org/show_bug.cgi?id=57815 + + Unreviewed buildfix after r82906. + + Add UNUSED_PARAM to resourceCachesToClear, because + it is only used within #if USE(CFURLCACHE) guard. + + * WebProcess/ResourceCache/WebResourceCacheManager.cpp: + (WebKit::WebResourceCacheManager::clearCacheForOrigin): + +2011-04-04 Sam Weinig <sam@webkit.org> + + Reviewed by Brian Weinstein. + + Remove duplicate API from WKContext + <rdar://problem/8727879> + https://bugs.webkit.org/show_bug.cgi?id=57815 + + - Remove WKContextClearResourceCaches and WKContextClearApplicationCache in favor + of their more modern counterparts WKResourceCacheManagerClearCacheForAllOrigins + and WKApplicationCacheManagerDeleteAllEntries. + + - Expand clearing functionality of WKResourceCacheManager by adding type of resources + to clear. + + * Shared/WebProcessCreationParameters.cpp: + (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): + (WebKit::WebProcessCreationParameters::encode): + (WebKit::WebProcessCreationParameters::decode): + * Shared/WebProcessCreationParameters.h: + Remove clearing bools. + + * UIProcess/API/C/WKAPICast.h: + (WebKit::toResourceCachesToClear): + Update for new name of enum. + + * UIProcess/API/C/WKContext.cpp: + * UIProcess/API/C/WKContext.h: + Remove WKContextClearResourceCaches and WKContextClearApplicationCache. + + * UIProcess/API/C/WKResourceCacheManager.cpp: + (WKResourceCacheManagerClearCacheForOrigin): + (WKResourceCacheManagerClearCacheForAllOrigins): + * UIProcess/API/C/WKResourceCacheManager.h: + Add WKResourceCachesToClear enum and use it in the clearing functions. + + * UIProcess/WebContext.cpp: + (WebKit::WebContext::WebContext): + (WebKit::WebContext::ensureWebProcess): + * UIProcess/WebContext.h: + * WebProcess/WebProcess.messages.in: + Remove clearing functions and setting of bools for clear on launch. + + * UIProcess/WebFullScreenManagerProxy.cpp: + Remove unnecessary #include. + + * UIProcess/WebResourceCacheManagerProxy.cpp: + (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin): + (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins): + * UIProcess/WebResourceCacheManagerProxy.h: + * WebProcess/ResourceCache/WebResourceCacheManager.cpp: + (WebKit::WebResourceCacheManager::clearCacheForOrigin): + (WebKit::WebResourceCacheManager::clearCacheForAllOrigins): + * WebProcess/ResourceCache/WebResourceCacheManager.h: + * WebProcess/ResourceCache/WebResourceCacheManager.messages.in: + Add enum parameter describing what type of caches to clear. + + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::initializeWebProcess): + (WebKit::WebProcess::clearResourceCaches): + * WebProcess/WebProcess.h: + No longer need to use opaque type now that it is not a message receiver. + +2011-04-04 David Kilzer <ddkilzer@apple.com> + + <http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match + + Reviewed by Alexey Proskuryakov. + + * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: + (InitWebCoreSystemInterface): Added initialization for + wkSetHTTPPipeliningMaximumPriority(). + +2011-04-04 Anders Carlsson <andersca@apple.com> + + Reviewed by Darin Adler. + + Send NPCocoaEventFlagsChanged events + https://bugs.webkit.org/show_bug.cgi?id=57811 + <rdar://problem/9215600> + + * Shared/WebEvent.h: + (WebKit::WebEvent::capsLockKey): + Add CapsLock modifier and getter. + + * Shared/mac/WebEventFactory.mm: + (WebKit::modifiersForEvent): + Check for NSAlphaShiftKeyMask and set the CapsLockKey modifier. + + * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: + (WebKit::modifierFlags): + Check for CapsLockKey and set NSAlphaShiftKeyMask. + + (WebKit::isFlagsChangedEvent): + Return whether a given event is a Cocoa flags changed event. + + (WebKit::initializeKeyboardEvent): + If this is a flags changed event, set the event type to NPCocoaEventFlagsChanged. + +2011-04-04 Anders Carlsson <andersca@apple.com> + + Reviewed by Darin Adler. + + Don't discard the backing stores of WKViews in the key window + https://bugs.webkit.org/show_bug.cgi?id=57808 + <rdar://problem/9110793> + <rdar://problem/9194284> + <rdar://problem/9222216> + + * UIProcess/DrawingAreaProxy.h: + (WebKit::DrawingAreaProxy::setBackingStoreIsDiscardable): + Add empty stub. + + * UIProcess/DrawingAreaProxyImpl.cpp: + (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl): + Initialize m_isBackingStoreDiscardable to true. + + (WebKit::DrawingAreaProxyImpl::setBackingStoreIsDiscardable): + Set m_isBackingStoreDiscardable and schedule or stop the discard backing store timer. + + (WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon): + Don't start the timer if m_isBackingStoreDiscardable is false. + + * UIProcess/DrawingAreaProxyImpl.h: + Add m_isBackingStoreDiscardable. + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::viewStateDidChange): + Mark the backing store as discardable if the view is hidden or if the containing window + is not active. + +2011-04-04 Jade Han <jade.han@nokia.com> + + Reviewed by Csaba Osztrogonác. + + Symbian build fix. + https://bugs.webkit.org/show_bug.cgi?id=54977 + + * config.h: + +2011-04-04 Brady Eidson <beidson@apple.com> + + Rubberstamped by Adam Roben. + + Add WKIconDatabase* headers to the WebKit2 export for Windows: + * win/WebKit2Generated.make: + +2011-04-04 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Get rid of WebContext::process() in more places + https://bugs.webkit.org/show_bug.cgi?id=57787 + + Migrate calls to WebContext::process() over to sendToAllProcesses and + sendToAllProcessesRelaunchingThemIfNecessary. + + Add FIXMEs for things that need to be fixed in order to support multiple web processes. + + * UIProcess/Downloads/DownloadProxy.cpp: + (WebKit::DownloadProxy::cancel): + * UIProcess/Plugins/WebPluginSiteDataManager.cpp: + (WebKit::WebPluginSiteDataManager::getSitesWithData): + (WebKit::WebPluginSiteDataManager::clearSiteData): + * UIProcess/VisitedLinkProvider.cpp: + (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired): + * UIProcess/WebApplicationCacheManagerProxy.cpp: + (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins): + (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin): + (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries): + * UIProcess/WebCookieManagerProxy.cpp: + (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): + (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): + * UIProcess/WebDatabaseManagerProxy.cpp: + (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin): + (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins): + (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin): + (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin): + (WebKit::WebDatabaseManagerProxy::deleteAllDatabases): + (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin): + * UIProcess/WebGeolocationManagerProxy.cpp: + (WebKit::WebGeolocationManagerProxy::providerDidChangePosition): + (WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition): + * UIProcess/WebIconDatabase.cpp: + (WebKit::WebIconDatabase::getLoadDecisionForIconURL): + (WebKit::WebIconDatabase::didFinishURLImport): + * UIProcess/WebKeyValueStorageManagerProxy.cpp: + (WebKit::WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins): + (WebKit::WebKeyValueStorageManagerProxy::deleteEntriesForOrigin): + (WebKit::WebKeyValueStorageManagerProxy::deleteAllEntries): + * UIProcess/WebMediaCacheManagerProxy.cpp: + (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache): + (WebKit::WebMediaCacheManagerProxy::clearCacheForHostname): + (WebKit::WebMediaCacheManagerProxy::clearCacheForAllHostnames): + * UIProcess/WebResourceCacheManagerProxy.cpp: + (WebKit::WebResourceCacheManagerProxy::getCacheOrigins): + (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin): + (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins): + +2011-04-04 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Dan Bernstein. + + REGRESSION (WebKit2): Caps-Lock indicator sometimes doesn't appear in WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=51230 + <rdar://problem/8780989> + + <rdar://problem/9015250> REGRESSION (WebKit2): Key events not fired for modifier keys + + * UIProcess/API/mac/WKView.mm: + (-[WKView flagsChanged:]): Ported from WebHTMLView. + (-[WKView _interpretKeyEvent:withCachedTextInputState:savingCommandsTo:WebCore::]): + AppKit isn't happy about attempts to interpret NSFlagsChanged, but WK2 lacked the check. + +2011-04-04 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Remove unused AnalyzeWithLargeStack code from Windows build files + https://bugs.webkit.org/show_bug.cgi?id=57771 + + This was used for us to build with prefast automatically, + but it is out-of-date and hasn't been used for some time. + Removing completely for now. + + * win/WebKitPreBuild.cmd: + +2011-04-04 Anders Carlsson <andersca@apple.com> + + Attempt to fix the Windows build. + + * UIProcess/win/WebContextWin.cpp: + (WebKit::WebContext::setShouldPaintNativeControls): + +2011-04-04 Anders Carlsson <andersca@apple.com> + + Reviewed by Adam Roben. + + Make it easier to send a message to all processes in a context + https://bugs.webkit.org/show_bug.cgi?id=57776 + + Add WebContext::sendToAllProcesses and WebContext::sendToAllProcessesRelaunchingThemIfNecessary + as a first step towards getting rid of WebContext::process() and getting rid of a class of crashers + where WebContext::process() is null. + + * UIProcess/WebContext.cpp: + (WebKit::WebContext::initializeHistoryClient): + (WebKit::WebContext::languageChanged): + (WebKit::WebContext::setAlwaysUsesComplexTextCodePath): + (WebKit::WebContext::registerURLSchemeAsEmptyDocument): + (WebKit::WebContext::registerURLSchemeAsSecure): + (WebKit::WebContext::setDomainRelaxationForbiddenForURLScheme): + (WebKit::WebContext::setCacheModel): + (WebKit::WebContext::setDefaultRequestTimeoutInterval): + (WebKit::WebContext::clearResourceCaches): + (WebKit::WebContext::clearApplicationCache): + (WebKit::WebContext::setEnhancedAccessibility): + (WebKit::WebContext::startMemorySampler): + Use sendToAllProcesses. + + (WebKit::WebContext::stopMemorySampler): + Use sendToAllProcesses. This is a slight policy change where we now create a sandbox extension even + if there's no process around. Since this is a debugging tool it seems OK to do this. + + * UIProcess/WebContext.h: + Get rid of hasValidProcess. + + (WebKit::WebContext::sendToAllProcesses): + If we have a process and we can send messages to it, then do so. + + (WebKit::WebContext::sendToAllProcessesRelaunchingThemIfNecessary): + Relaunch the web process and send the message. + + * UIProcess/WebCookieManagerProxy.cpp: + (WebKit::WebCookieManagerProxy::deleteCookiesForHostname): + (WebKit::WebCookieManagerProxy::deleteAllCookies): + (WebKit::WebCookieManagerProxy::startObservingCookieChanges): + (WebKit::WebCookieManagerProxy::stopObservingCookieChanges): + (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): + Use sendToAllProcesses and sendToAllProcessesRelaunchingThemIfNecessary. + +2011-04-04 Adam Roben <aroben@apple.com> + + Move a teensy bit of non-Mac-specific code up to LayerTreeHostCA + + Fixes <http://webkit.org/b/57774> LayerTreeHostCA should know how to flip the root layer + + Reviewed by Anders Carlsson. + + * WebProcess/WebPage/ca/LayerTreeHostCA.cpp: + (WebKit::LayerTreeHostCA::initialize): Cross-platformized and moved some code here... + + * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm: + (WebKit::LayerTreeHostCAMac::platformInitialize): ...from here. + +2011-04-01 Enrica Casucci <enrica@apple.com> + + Reviewed by Darin Adler. + + WK2: Reproducible crash when dragging out of or over Safari window. + https://bugs.webkit.org/show_bug.cgi?id=57654 + <rdar://problem/9139755> + + AppKit does not retain the owner given to the pasteboard, therefore we + need to give the ownership of the retained pointer to NSPasteboard. + Also, dragImage will release the NSFilePromiseDragSource object, therefore + we retain it before calling dragImage to be able to control its lifetime. + + * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: + (WebKit::WebDragClient::declareAndWriteDragImage): Passing ownership + of the pointer to AppKit when providing the owner pointer to the NSPasteboard + object. + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::platformDragEnded): Retaining the NSFilePromiseDragSource + since dragImage will release it. + +2011-03-30 Jer Noble <jer.noble@apple.com> + + Reviewed by Dan Bernstein. + + WebKit2: No "open in preview" contextual menu item for PDFs + https://bugs.webkit.org/show_bug.cgi?id=57527 + + Add support for opening a PDF in the associated application from the + context menu. + + * UIProcess/API/mac/PDFViewController.mm: + (_applicationInfoForMIMEType): Added, copied from WebKit/WebPDFView.mm + (-[WKPDFView _openWithFinder:]): Added. + (-[WKPDFView hitTest:]): Added, copied from WebKit/WebPDFView.mm. + (-[WKPDFView menuForEvent:]): Added, adapted from WebKit/WebPDFVie.mm. + (-[WKPDFView validateUserInterfaceItem:]): Added. + +2011-04-04 Chang Shu <cshu@webkit.org> + + Reviewed by Darin Adler. + + WebKitTestRunner needs layoutTestController.setAllowFileAccessFromFileURLs + https://bugs.webkit.org/show_bug.cgi?id=57572 + + * Shared/WebPreferencesStore.cpp: + (WebKit::WebPreferencesStore::decode): + (WebKit::WebPreferencesStore::overrideAllowFileAccessFromFileURLsForTestRunner): + * Shared/WebPreferencesStore.h: + * WebProcess/InjectedBundle/API/c/WKBundle.cpp: + (WKBundleSetAllowFileAccessFromFileURLs): + * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::setAllowFileAccessFromFileURLs): + * WebProcess/InjectedBundle/InjectedBundle.h: + +2011-04-04 Brady Eidson <beidson@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=57683 + Flesh out WK2 Icon Database API + + For now the new API will add a client interface where the WK1 version used NSNotifications. + + If we decide we'd like the granularity of specific callback functions later, + they can easily be added on. + + Project file nonsense: + * GNUmakefile.am: + * WebKit2.pro: + * WebKit2.xcodeproj/project.pbxproj: + * win/WebKit2.vcproj: + + Add a WKIconDatabaseClient and some new API: + * UIProcess/API/C/WKIconDatabase.cpp: + (WKIconDatabaseSetIconDatabaseClient): + (WKIconDatabaseRemoveAllIcons): + (WKIconDatabaseCheckIntegrityBeforeOpening): + * UIProcess/API/C/WKIconDatabase.h: + * UIProcess/API/C/cg/WKIconDatabaseCG.cpp: + (WKIconDatabaseTryGetCGImageForURL): Renamed to "try" for subtle clarification. + * UIProcess/API/C/cg/WKIconDatabaseCG.h: + + Implementations for the new APIs: + * UIProcess/WebIconDatabase.cpp: + (WebKit::WebIconDatabase::retainIconForPageURL): Remove excessive logging. + (WebKit::WebIconDatabase::releaseIconForPageURL): Ditto. + (WebKit::WebIconDatabase::imageForPageURL): + (WebKit::WebIconDatabase::removeAllIcons): + (WebKit::WebIconDatabase::checkIntegrityBeforeOpening): + (WebKit::WebIconDatabase::initializeIconDatabaseClient): + (WebKit::WebIconDatabase::didImportIconURLForPageURL): Dispatch a client callback, + much like the WK1 API uses notifications. + (WebKit::WebIconDatabase::didImportIconDataForPageURL): Ditto. + (WebKit::WebIconDatabase::didChangeIconForPageURL): Ditto. + (WebKit::WebIconDatabase::didRemoveAllIcons): Ditto. + * UIProcess/WebIconDatabase.h: + * UIProcess/WebIconDatabaseClient.cpp: Added. + (WebKit::WebIconDatabaseClient::didChangeIconForPageURL): + (WebKit::WebIconDatabaseClient::didRemoveAllIcons): + * UIProcess/WebIconDatabaseClient.h: Added. + +2011-04-04 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Main loop sources are leaked in RunLoopGtk + https://bugs.webkit.org/show_bug.cgi?id=57618 + + * Platform/RunLoop.h: + (RunLoop::TimerBase::isRepeating): + * Platform/gtk/RunLoopGtk.cpp: + (RunLoop::~RunLoop): Make sure main loop is currently running + before calling g_main_loop_quit(), RunLoop::stop() might have been + called. + (RunLoop::wakeUp): Use an idle source with default priority + instead of a timeout one with a 0 interval. + (RunLoop::TimerBase::clearTimerSource): New method to clear the + timer. + (RunLoop::TimerBase::destroyNotifyCallback): Destroy notify + callback called when the source is destroyed to clear the timer. + (RunLoop::TimerBase::timerFiredCallback): Use the same callback for + repeating and no repeating timers. + (RunLoop::TimerBase::start): g_source_attach() increments the + source reference counter, so use GRefPtr to make sure the source + is freed. + (RunLoop::TimerBase::stop): Use clearTimerSource(). + +2011-04-03 Dan Bernstein <mitz@apple.com> + + Build fix. + + * Shared/DictionaryPopupInfo.cpp: + (WebKit::DictionaryPopupInfo::encode): + (WebKit::DictionaryPopupInfo::decode): + * Shared/DictionaryPopupInfo.h: + +2011-04-03 Dan Bernstein <mitz@apple.com> + + Reviewed by Maciej Stachowiak. + + <rdar://problem/9227839> REGRESSION: Reproducible crash in Snow Leopard when trying to show the Dictionary panel or application + https://bugs.webkit.org/show_bug.cgi?id=57739 + + * Shared/DictionaryPopupInfo.cpp: + (WebKit::DictionaryPopupInfo::encode): Do not encode the options dictionary on Snow Leopard. + (WebKit::DictionaryPopupInfo::decode): Do not decode the options dictionary on Snow Leopard. + * Shared/DictionaryPopupInfo.h: Removed the options member variable on Snow Leopard. + * Shared/Plugins/PluginQuirks.h: + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::WebPage::performDictionaryLookupForRange): Do not set the options member variable on + Snow Leopard. + +2011-04-02 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + https://bugs.webkit.org/show_bug.cgi?id=57605 + Frame::pageScaleFactor() should not affect getBoundingClientRect() or + getClientRects() + -and corresponding- + <rdar://problem/9194541> + + Add DRT support for the scaleWebView SPI. + * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: + (WKBundlePageSetScaleAtOrigin): + * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: + +2011-04-02 Sam Weinig <sam@webkit.org> + + Reviewed by Oliver Hunt. + + "Search in Spotlight" broken in WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=57712 + + Proxy spotlight searching to the UIProcess. + + * UIProcess/WebPageProxy.messages.in: + Add new message. Re-organize messages to put all mac specific ones together. + + * UIProcess/WebPageProxy.h: + * UIProcess/mac/WebPageProxyMac.mm: + (WebKit::WebPageProxy::speak): + (WebKit::WebPageProxy::searchWithSpotlight): + Moved code to trigger spotlight here. Use WTF::String -> NSString conversion function + instead of relying on the built in conversion since it doesn't always work in the UIProcess. + + * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: + (WebKit::WebContextMenuClient::searchWithSpotlight): + Post message to the UIProcess to do the searching. + +2011-04-02 Jeff Miller <jeffm@apple.com> + + Reviewed by Dan Bernstein. + + WebKit2: Specify the certificate store in WKBundleSetClientCertificate() + https://bugs.webkit.org/show_bug.cgi?id=57707 + + Include the name of the system certificate store that the client certificate came from in WKBundleSetClientCertificate(). + + The PCCERT_CONTEXT for the client certificate we create from the message from the UI process doesn't contain enough information to actually use it in a request, we need to get the real certificate from the certificate store (which is typically the "MY" store). + + * WebProcess/InjectedBundle/API/c/win/WKBundlePrivateWin.cpp: + (WKBundleSetClientCertificate): Add certificateSystemStoreName to parameters. + * WebProcess/InjectedBundle/API/c/win/WKBundlePrivateWin.h: Add certificateSystemStoreName to WKBundleSetClientCertificate() parameters. + * WebProcess/InjectedBundle/InjectedBundle.h: Add certificateSystemStoreName to setClientCertificate() parameters. + * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp: + (WebKit::InjectedBundle::setClientCertificate): Read the real certificate from the certificate store. + +2011-04-02 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Implement WKBundleFrameHasHorizontalScrollbar/WKBundleFrameHasVerticalScrollbar + <rdar://problem/9225772> + https://bugs.webkit.org/show_bug.cgi?id=57709 + + * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: + (WKBundleFrameHasHorizontalScrollbar): + (WKBundleFrameHasVerticalScrollbar): + * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: + * WebProcess/WebPage/WebFrame.cpp: + (WebKit::WebFrame::hasHorizontalScrollbar): + (WebKit::WebFrame::hasVerticalScrollbar): + * WebProcess/WebPage/WebFrame.h: + +2011-04-01 Jon Lee <jonlee@apple.com> + + Reviewed by Darin Adler. + + WebKit2: Type-to-select doesn't work in open <select> menu (53023) + https://bugs.webkit.org/show_bug.cgi?id=53023 + <rdar://problem/8907678> + + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: adding new setPopupMenuSelectedIndex message for windows platform + * UIProcess/win/WebPageProxyWin.cpp: + (WebKit::WebPageProxy::setPopupMenuSelectedIndex): + * UIProcess/win/WebPopupMenuProxyWin.h: moving setFocusedIndex() into public method + * WebProcess/WebCoreSupport/WebPopupMenu.cpp: + (WebKit::WebPopupMenu::updateFromElement): send message back to UIProcess to update the selected element + +2011-04-01 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + REGRESSION: Assertion failure when executing a complex custom key binding + https://bugs.webkit.org/show_bug.cgi?id=57681 + + Also completes a fix for + <rdar://problem/9063782> WebKit2: Text fields in Safari don't honor custom key bindings + + * UIProcess/API/mac/WKView.mm: (-[WKView hasMarkedText]): There is no need to execute saved + commands when they can't possibly change the result. + +2011-04-01 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Anders Carlsson. + + Crash when calling WebPageProxy::setMemoryCacheClientCallsEnabled with an invalid Web Process + https://bugs.webkit.org/show_bug.cgi?id=57680 + <rdar://problem/9202909> + + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::setMemoryCacheClientCallsEnabled): Add an isValid check before sending + the message. + +2011-03-31 Jer Noble <jer.noble@apple.com> + + Reviewed by Dan Bernstein. + + WebKit2: Save as PDF in Safari provides Untitled as default file name + https://bugs.webkit.org/show_bug.cgi?id=57529 + + Set the NSPrintOperation's jobTitle to the printing frame's title. + + * UIProcess/API/mac/WKView.mm: + (-[WKView printOperationWithPrintInfo:forFrame:]): + +2011-04-01 Jer Noble <jer.noble@apple.com> + + Reviewed by Darin Adler. + + WebKit2: Link from PDF opens in a new tab instead of in the same tab + https://bugs.webkit.org/show_bug.cgi?id=57528 + + Notify the WebProcess that a link has been clicked so that the normal policy + lookup can occur. + + * Shared/WebEvent.cpp: + (WebKit::WebEvent::WebEvent): Initialize ivars in the default constructor. + * Shared/WebEvent.h: Add WebEvent::NoType to Type enum. + * Shared/WebMouseEvent.cpp: + (WebKit::WebMouseEvent::WebMouseEvent): Ditto. + * UIProcess/API/mac/PDFViewController.mm: + (-[WKPDFView PDFViewWillClickOnLink:withURL:]): Handle the delegate + function and override the PDFView default behavior. + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::didReceiveEvent): Handle the new WebEvent::NoType enum. + (WebKit::WebPageProxy::linkClicked): Added. Send event through to WebPage. + * UIProcess/WebPageProxy.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::linkClicked): Added. Call loadFrameRequest(). + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: Added LinkClicked. + +2011-04-01 Sam Weinig <sam@webkit.org> + + Reviewed by Adam "Keyword Slasher" Roben. + + Remove unnecessary static keyword. + + * UIProcess/API/cpp/WKRetainPtr.h: + (WebKit::adoptWK): + +2011-04-01 Sam Weinig <sam@webkit.org> + + Reviewed by Adam Roben. + + Add adoptWK to WKRetainPtr.h + https://bugs.webkit.org/show_bug.cgi?id=57670 + + * UIProcess/API/cpp/WKRetainPtr.h: + (WebKit::adoptWK): + Add shared implementation of adoptWK. Previously both WebKitTestRunner + and TestWebKitAPI had separate versions of it. + +2011-04-01 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Shockwave plug-in doesn't accept mouse events + https://bugs.webkit.org/show_bug.cgi?id=57653 + <rdar://problem/8483273> + + Add a missing break. + + * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: + (WebKit::NetscapePlugin::convertPoint): + +2011-04-01 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + WebKitTestRunner needs layoutTestController.shadowRoot + https://bugs.webkit.org/show_bug.cgi?id=57661 + + * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: + (WKBundleNodeHandleGetRenderRect): + (WKBundleNodeHandleGetElementBounds): + (WKBundleNodeHandleCopyElementShadowRoot): + * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: + * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: + (WebKit::InjectedBundleNodeHandle::elementShadowRoot): + * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h: + Add accessor for the shadowRoot of an element in the bundle. + +2011-04-01 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + Make WebKit2 text input handling more like WebKit1 + https://bugs.webkit.org/show_bug.cgi?id=57649 + + We now send more sync messages from UI process to Web process for NSTextInput protocol + methods. Some of the exchanges are avoided by pre-calculating the responses before asking + UI process to interpret key events, and also with each sync message sent during + interpretation, and which could change the state. + + * Platform/CoreIPC/HandleMessage.h: (CoreIPC::callMemberFunction): Added a missing + specialization for a function with 6 arguments and 2 returned values. + + * Scripts/webkit2/messages.py: Added TextInputState to struct list. + + * Shared/WebCoreArgumentCoders.h: Fixed a bug in CompositionUnderline encoding, which only + encoded a part of Color field, and didn't match decoder. + + * Shared/mac/TextInputState.h: Added. This is state that's needed for IM machinery and that + we don't want to send sync messages for. This is similar to SelectionState, but the latter + is only updated asynchronously, and is thus less reliable. + + * UIProcess/API/mac/PageClientImpl.h: We don't "intercept", we "interpret". + + * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::interpretKeyEvent): Pass + current text input state, and don't expect anything input method related in return, as input + methods are now sync. + + * UIProcess/API/mac/WKView.mm: + (-[WKView doCommandBySelector:]): + (-[WKView insertText:]): + (-[WKView keyDown:]): + (-[WKView _executeSavedKeypressCommands]): + (-[WKView inputContext]): + (-[WKView selectedRange]): + (-[WKView hasMarkedText]): + (-[WKView unmarkText]): + (-[WKView setMarkedText:selectedRange:]): + (-[WKView markedRange]): + (-[WKView attributedSubstringFromRange:]): + (-[WKView characterIndexForPoint:]): + (-[WKView firstRectForCharacterRange:]): + (-[WKView _interpretKeyEvent:withCachedTextInputState:savingCommandsTo:WebCore::]): + * UIProcess/API/mac/WKViewInternal.h: + * UIProcess/PageClient.h: + * UIProcess/WebPageProxy.h: + * UIProcess/WebPageProxy.messages.in: + * UIProcess/mac/WebPageProxyMac.mm: + (WebKit::WebPageProxy::setComposition): + (WebKit::WebPageProxy::confirmComposition): + (WebKit::WebPageProxy::insertText): + (WebKit::WebPageProxy::getSelectedRange): + (WebKit::WebPageProxy::executeKeypressCommands): + (WebKit::WebPageProxy::interpretQueuedKeyEvent): + * WebKit2.xcodeproj/project.pbxproj: + * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: + (WebKit::WebEditorClient::handleKeyboardEvent): + (WebKit::WebEditorClient::handleInputMethodKeydown): + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::WebPage): + * WebProcess/WebPage/WebPage.h: + (WebKit::WebPage::viewFrameInWindowCoordinates): + * WebProcess/WebPage/WebPage.messages.in: + * WebProcess/WebPage/mac/WebPageMac.mm: + (WebKit::createSelectorExceptionMap): + (WebKit::commandNameForSelectorName): + (WebKit::currentTextInputState): + (WebKit::frameForEvent): + (WebKit::WebPage::executeKeypressCommandsInternal): + (WebKit::WebPage::handleEditingKeyboardEvent): + (WebKit::WebPage::setComposition): + (WebKit::WebPage::confirmComposition): + (WebKit::WebPage::insertText): + (WebKit::WebPage::getSelectedRange): + (WebKit::convertToRange): + (WebKit::WebPage::executeKeypressCommands): + (WebKit::WebPage::performDefaultBehaviorForKeyEvent): + Rewrote to be more like WebKit1. + +2011-04-01 Chang Shu <cshu@webkit.org> + + Reviewed by Darin Adler. + + WebKitTestRunner needs layoutTestController.setDatabaseQuota + https://bugs.webkit.org/show_bug.cgi?id=57568 + + * WebProcess/InjectedBundle/API/c/WKBundle.cpp: + (WKBundleSetDatabaseQuota): + * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::setDatabaseQuota): + * WebProcess/InjectedBundle/InjectedBundle.h: + * WebProcess/WebCoreSupport/WebDatabaseManager.h: + +2011-04-01 Timothy Hatcher <timothy@apple.com> + + Make momentum scroll event latching work in WebKit2 on Mac. + + <rdar://problem/8751861> + + Reviewed by Darin Adler. + + * Shared/mac/WebEventFactory.mm: + (WebKit::momentumPhaseForEvent): Return a phase on older Mac system by using WKGetNSEventMomentumPhase. + * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: + (InitWebCoreSystemInterface): Remove IsLatchingWheelEvent, add GetNSEventMomentumPhase. + +2011-04-01 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Anders Carlsson. + + Assertion failure (type == event.type()) after a web process crash + https://bugs.webkit.org/show_bug.cgi?id=56228 + <rdar://problem/8806106> + + This partially un-confuses the UI process about key processing state after a web process + crash. It may not be pefect yet - sending a KeyUp to a new process that never saw a KeyDown + seems weird. + + * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::processDidCrash): + +2011-04-01 Adam Roben <aroben@apple.com> + + Cairo build fix + + * WebProcess/WebPage/LayerTreeHost.cpp: Only pull in the LayerTreeHostCA derived classes for + PLATFORM(CA) ports. + +2011-03-31 Adam Roben <aroben@apple.com> + + Split LayerTreeHostCA into a base class and derived Mac and Win classes + + This will make it easier to customize the Mac and Windows implementations without adding too + many #ifdefs. + + Fixes <http://webkit.org/b/57606> Windows and Mac should use separate LayerTreeHost classes + + Reviewed by Anders Carlsson. + + * WebKit2.xcodeproj/project.pbxproj: Added LayerTreeHostCAMac.h. + + * WebProcess/WebPage/LayerTreeHost.cpp: + (WebKit::LayerTreeHost::create): Create a LayerTreeHostCAMac on Mac, and LayerTreeHostCAWin + on Windows. + + * WebProcess/WebPage/ca/LayerTreeHostCA.cpp: + (WebKit::LayerTreeHostCA::LayerTreeHostCA): Moved some code from here... + (WebKit::LayerTreeHostCA::initialize): ...to here. This function will be called after the + constructor returns, and thus can safely call functions that are pure virtual in this class + and its base class. We now pass our LayerTreeContext to platformInitialize so that our + derived classes can initialize it. + (WebKit::LayerTreeHostCA::~LayerTreeHostCA): Removed Mac-specific code. + + (WebKit::LayerTreeHostCA::invalidate): + (WebKit::LayerTreeHostCA::sizeDidChange): + (WebKit::LayerTreeHostCA::forceRepaint): + (WebKit::LayerTreeHostCA::didPerformScheduledLayerFlush): + Removed platform* calls. Derived classes can just override these functions to do what they + need. + + * WebProcess/WebPage/ca/LayerTreeHostCA.h: Removed Mac-specific pieces. Made some functions + virtual so that derived classes can override them. + + * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h: Added. + + * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm: + (WebKit::LayerTreeHostCAMac::create): Create and initialize a host. + (WebKit::LayerTreeHostCAMac::LayerTreeHostCAMac): Simple constructor. + (WebKit::LayerTreeHostCAMac::~LayerTreeHostCAMac): Moved code here from LayerTreeHostCA + destructor. + (WebKit::LayerTreeHostCAMac::platformInitialize): Removed direct uses of LayerTreeHostCA + data members. + + (WebKit::LayerTreeHostCAMac::invalidate): + (WebKit::LayerTreeHostCAMac::sizeDidChange): + (WebKit::LayerTreeHostCAMac::forceRepaint): + (WebKit::LayerTreeHostCAMac::didPerformScheduledLayerFlush): + Renamed from platform*. Now call up to the base class. + + (WebKit::LayerTreeHostCAMac::flushPendingLayerChangesRunLoopObserverCallback): Updated type. + + * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp: + (WebKit::LayerTreeHostCAWin::create): Create and initialize a host. + + (WebKit::LayerTreeHostCAWin::LayerTreeHostCAWin): + (WebKit::LayerTreeHostCAWin::~LayerTreeHostCAWin): + (WebKit::LayerTreeHostCAWin::platformInitialize): + (WebKit::LayerTreeHostCAWin::scheduleLayerFlush): + Stubbed out. + + * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h: Added. + + * win/WebKit2.vcproj: Added LayerTreeHostCAWin.h + + * win/WebKit2Apple.vsprops: Added WebProcess/WebPage/ca/win to the include path. + +2011-03-31 Brent Fulgham <bfulgham@webkit.org> + + Unreviewed WinCairo build fix after r82632. + + * UIProcess/DrawingAreaProxyImpl.cpp: + (WebKit::DrawingAreaProxyImpl::visibilityDidChange): + +2011-03-31 Adam Roben <aroben@apple.com> + + Add SharedMemory::adopt, which can take ownership of an existing file mapping object + + Fixes <http://webkit.org/b/57599> Need a way to wrap an existing file mapping object in a + SharedMemory + + Reviewed by Anders Carlsson. + + * Platform/SharedMemory.h: Added adopt. + + * Platform/win/SharedMemoryWin.cpp: + (WebKit::SharedMemory::create): Moved code to adopt the HANDLE from here... + (WebKit::SharedMemory::adopt): ...to here. + +2011-03-31 Chang Shu <cshu@webkit.org> + + Reviewed by Darin Adler. + + WebKitTestRunner needs layoutTestController.clearAllDatabases + https://bugs.webkit.org/show_bug.cgi?id=42540 + + * WebProcess/InjectedBundle/API/c/WKBundle.cpp: + (WKBundleClearAllDatabases): + * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::clearAllDatabases): + * WebProcess/InjectedBundle/InjectedBundle.h: + * WebProcess/WebCoreSupport/WebDatabaseManager.h: + +2011-03-31 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Add some more media related things to the sandbox profile. + + * WebProcess/com.apple.WebProcess.sb: + +2011-03-31 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Tabbed pages redraw unnecessarily when activated + https://bugs.webkit.org/show_bug.cgi?id=57589 + <rdar://problem/9218258> + + * UIProcess/DrawingAreaProxyImpl.cpp: + (WebKit::DrawingAreaProxyImpl::visibilityDidChange): + If we become visible and have no backing store, make sure to call backingStoreStateDidChange + so that the next time we're asked to paint we'll wait for something to paint. + + (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): + Remove now redundant call to backingStoreStateDidChange. + +2011-03-31 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Sandbox violations when playing back HTML5 video on YouTube + <rdar://problem/8950692> + + * WebProcess/com.apple.WebProcess.sb: + +2011-03-31 Darin Adler <darin@apple.com> + + Reviewed by Sam Weinig. + + Implement mouseDown, mouseUp, and mouseMoveTo in WebKitTestRunner + https://bugs.webkit.org/show_bug.cgi?id=57573 + + * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: + (WKBundlePageSimulateMouseDown): Added. + (WKBundlePageSimulateMouseUp): Added. + (WKBundlePageSimulateMouseMotion): Added. + * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: Added above functions. + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::simulateMouseDown): Added. + (WebKit::WebPage::simulateMouseUp): Added. + (WebKit::WebPage::simulateMouseMotion): Added. + * WebProcess/WebPage/WebPage.h: Added above functions. + +2011-03-31 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Rename WebCore's UI_STRING to WEB_UI_STRING to not overlap with WebKit API + https://bugs.webkit.org/show_bug.cgi?id=57582 + + * PluginProcess/mac/PluginProcessMac.mm: + (WebKit::PluginProcess::platformInitialize): + * UIProcess/mac/WebInspectorProxyMac.mm: + (WebKit::WebInspectorProxy::platformInspectedURLChanged): + * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm: + * WebProcess/mac/WebProcessMac.mm: + (WebKit::WebProcess::platformInitializeWebProcess): + +2011-03-31 Adam Roben <aroben@apple.com> + + Specify both FILE_MAP_READ and FILE_MAP_WRITE when creating a read-write SharedMemory object + + When passed to ::MapViewOfFile, FILE_MAP_WRITE implies FILE_MAP_READ, but other file mapping + APIs don't work that way. This bug wasn't causing any problems in practice, but it would + have prevented us from creating a DIB that wraps a SharedMemory object (which I noticed + while working on another bug). + + Fixes <http://webkit.org/b/57576> File mappings used by read-write SharedMemory objects + aren't correctly marked as read-write after being sent over a CoreIPC::Connection + + Reviewed by Brian Weinstein. + + * Platform/win/SharedMemoryWin.cpp: + (WebKit::accessRights): Specify FILE_MAP_READ in addition to FILE_MAP_WRITE for read-write + SharedMemory. + +2011-03-31 Adam Roben <aroben@apple.com> + + Quote the executable path we pass to ::CreateProcessW + + This will ensure that spaces in the path will be interpreted correctly. + + Fixes <http://webkit.org/b/57569> Web process sometimes fails to launch when there are + spaces in its path + + Reviewed by Steve Falkenburg. + + * UIProcess/Launcher/win/ProcessLauncherWin.cpp: + (WebKit::ProcessLauncher::launchProcess): Surround the executable path in quotes. + +2011-03-31 Alexey Proskuryakov <ap@apple.com> + + Patch by John Harvey, reviewed and tweaked by me. + + <rdar://problem/8644403> Should notify TSM that plug-ins would show a bottom input window for marked text. + + * UIProcess/API/mac/WKTextInputWindowController.mm: + (-[WKTextInputPanel _interpretKeyEvent:string:]): + +2011-03-31 Anders Carlsson <andersca@apple.com> + + Reviewed by John Sullivan, Darin Adler, Dan Bernstein and Sam Weinig. + + If a user doesn't have a Database/LocalStorage directory, it can't be created (sandbox violations) + https://bugs.webkit.org/show_bug.cgi?id=57561 + <rdar://problem/9127411> + + Ensure that any readwrite sandbox directories actually exist before entering the sandbox. + + * WebProcess/mac/WebProcessMac.mm: + (WebKit::appendReadwriteSandboxDirectory): + +2011-03-31 John Sullivan <sullivan@apple.com> + + Reviewed by Darin Adler and Adam Roben. + + <rdar://problem/9214824> Find client not told when WKPageCountStringMatches exceeds maximum + https://bugs.webkit.org/show_bug.cgi?id=57552 + + * WebProcess/WebPage/FindController.cpp: + (WebKit::FindController::countStringMatches): + Use the same technique as findString() to report kWKMoreThanMaximumMatchCount when appropriate. + (WebKit::FindController::findString): + Convert numeric_limits::max() to max() - 1 to avoid overflow case. + +2011-03-31 Evan Martin <evan@chromium.org> + + Reviewed by Eric Seidel. + + <title> should support dir attribute + https://bugs.webkit.org/show_bug.cgi?id=50961 + + Update to new FrameLoaderClient interface. + + * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: + (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle): + (WebKit::WebFrameLoaderClient::setTitle): + * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: + +2011-03-31 Balazs Kelemen <kbalazs@webkit.org> + + Reviewed by Csaba Osztrogonác. + + [WK2] Introduce an option for no NPAPI support + https://bugs.webkit.org/show_bug.cgi?id=55828 + + Stub out NPAPI support for platform and OS combinations that are + not supported yet. Ancestor patch was made by Laszlo Gombos. + + * GNUmakefile.am: Add NetscapePluginModuleNone.cpp and NetscapePluginNone.cpp + to the build system. + + * Shared/Plugins/Netscape/NetscapePluginModule.cpp: + Remove the sanity check because from now all combinations that + don't have an explicitly set plugin architecture fall into + the PLUGIN_ARCHITECTURE(UNSUPPORTED) category and has a stubbed + implementation. + + * Shared/Plugins/Netscape/NetscapePluginModuleNone.cpp: Added. + Stubbed implementation. + (WebKit::NetscapePluginModule::getPluginInfo): + (WebKit::NetscapePluginModule::determineQuirks): + + * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp: Guard with + PLUGIN_ARCHITECTURE(X11). + + * WebKit2.pro: Add NetscapePluginModuleNone.cpp and NetscapePluginNone.cpp + to the build system. + + * WebProcess/Plugins/Netscape/NetscapePluginNone.cpp: Added. + Stubbed implementation + (WebKit::NetscapePlugin::platformPostInitialize): + (WebKit::NetscapePlugin::platformDestroy): + (WebKit::NetscapePlugin::platformInvalidate): + (WebKit::NetscapePlugin::platformGeometryDidChange): + (WebKit::NetscapePlugin::platformPaint): + (WebKit::NetscapePlugin::platformHandleMouseEvent): + (WebKit::NetscapePlugin::platformHandleWheelEvent): + (WebKit::NetscapePlugin::platformSetFocus): + (WebKit::NetscapePlugin::platformHandleMouseEnterEvent): + (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent): + (WebKit::NetscapePlugin::platformHandleKeyboardEvent): + + * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: Guard with + PLUGIN_ARCHITECTURE(X11) + + * config.h: Introduce PLUGIN_ARCHITECTURE(UNSUPPORTED) as another + option. Make platform and OS combinations that are not supported + yet fall into this. Don't use Q_WS_X11 to test the window system + for Qt because it is not defined without including <QtGlobal>. + No clue about how could it work so far. + +2011-03-31 Vamshikrishna.Yellenki <vamshi@motorola.com> and Alejandro G. Castro <alex@igalia.com> + + Reviewed by Martin Robinson. + + Implement MiniBrowser for Gtk port. + https://bugs.webkit.org/show_bug.cgi?id=48512 + + * Shared/API/c/gtk/WKBaseGtk.h: Add the stdbool.h include. + +2011-03-30 Dan Bernstein <mitz@apple.com> + + Reviewed by Maciej Stachowiak. + + <rdar://problem/9005982> Flash of white when a WKView with composited content moves on-screen + https://bugs.webkit.org/show_bug.cgi?id=57522 + + * UIProcess/DrawingAreaProxyImpl.cpp: + (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Invalidate the current + backing store state, so that we get an update as soon as the page enters compositing mode + next. + * WebProcess/WebPage/DrawingAreaImpl.cpp: + (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState): Added a call to + LayerTreeHost::forceRepaint() in order to flush and synchronize the layers + before sending the update message to the UI process. + +2011-03-30 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Sandbox violations if you navigate a file URL via something other than a click + <rdar://problem/9016086> + https://bugs.webkit.org/show_bug.cgi?id=57519 + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::shouldReuseCommittedSandboxExtension): + Remove unnecessary restriction on extension reuse. Any type of file to file navigation + should be allowed. + +2011-03-30 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Clean up the sandbox parameter code + https://bugs.webkit.org/show_bug.cgi?id=57518 + + * Shared/WebProcessCreationParameters.h: + Make nsURLCachePath and uiProcessBundleResourcePath Strings to match the other paths we send over. + + * UIProcess/mac/WebContextMac.mm: + (WebKit::WebContext::platformInitializeWebProcess): + nsURLCachePath and uiProcessBundleResourcePath are now Strings. + + * WebProcess/mac/WebProcessMac.mm: + (WebKit::appendSandboxParameterPathInternal): + (WebKit::appendReadwriteConfDirectory): + (WebKit::appendReadonlySandboxDirectory): + (WebKit::appendReadwriteSandboxDirectory): + (WebKit::initializeSandbox): + Make it more clear whether the directories we're adding are readonly or readwrite. No functionality change. + + (WebKit::WebProcess::platformInitializeWebProcess): + nsURLCachePath is now a string. + +2011-03-30 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Downloading a file fails due to a sandbox violation if the destination path is a symlink + https://bugs.webkit.org/show_bug.cgi?id=57517 + <rdar://problem/8943865> + + Make sure to resolve any symlinks in the given path when creating a sandbox extension handle. + Note that we can't use realpath or -[NSString stringByResolvingSymlinksInPath], because those calls + will fail if the pointed to file doesn't exist. + + * Shared/mac/SandboxExtensionMac.mm: + (WebKit::resolveSymlinksInPath): + New function that resolves all the symlinks in the given path. + + (WebKit::SandboxExtension::createHandle): + Call resolveSymlinksInPath on the resulting path. + +2011-03-30 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + Share most vsprops between Release and Production builds in releaseproduction.vsprops + https://bugs.webkit.org/show_bug.cgi?id=57508 + + * win/WebKit2Production.vsprops: + * win/WebKit2Release.vsprops: + * win/WebKit2ReleaseCairoCFLite.vsprops: + * win/WebKit2WebProcessProduction.vsprops: + * win/WebKit2WebProcessRelease.vsprops: + * win/WebKit2WebProcessReleaseCairoCFLite.vsprops: + 2011-03-30 Ivan Krstić <ike@apple.com> Reviewed by Oliver Hunt. @@ -1080,7 +6147,7 @@ 2011-03-26 Maciej Stachowiak <mjs@apple.com> - Revert inadvertently commited changes. + Revert inadvertently committed changes. * WebProcess/com.apple.WebProcess.sb: |