2012-09-10 Byungwoo Lee [EFL][WK2] Build warning : fix warning about extended initializer lists on EWK2UnitTestBase.cpp. https://bugs.webkit.org/show_bug.cgi?id=95990 Reviewed by Gyuyoung Kim. Fix build warning about extended initializer lists only available with -std=c++0x or -std=gnu++0x. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: (EWK2UnitTest::ewk2UnitTestBrowserViewSmartClass): (EWK2UnitTest): (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase): 2012-11-08 Grzegorz Czajkowski [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded https://bugs.webkit.org/show_bug.cgi?id=101570 Reviewed by Gustavo Noronha Silva. To do not get the vector of loaded languages, WebKit2-EFL calls TextCheckerEnchant::hasDictionary() method to check whether the dictionaries vector is empty. * UIProcess/API/efl/ewk_settings.cpp: (ewk_settings_continuous_spell_checking_enabled_set): * UIProcess/API/efl/ewk_text_checker.cpp: (Ewk_Text_Checker::hasDictionary): (Ewk_Text_Checker): * UIProcess/API/efl/ewk_text_checker_private.h: (Ewk_Text_Checker): 2012-11-07 Grzegorz Czajkowski WebKitTestRunner needs to turn on 'setContinuousSpellCheckingEnabled' https://bugs.webkit.org/show_bug.cgi?id=93611 Reviewed by Gyuyoung Kim. When WebKitTestRunner turns on the spelling feature with the resetStateToConsistentValues() method, it happens that the WebProcess is still not launched (although it is already created). In this case, isValid() method returns false. This fix sends a message to the WebProcess messages queue, and the message will be handled once the WebProcess is ready. * Target.pri: Adds missing files to compile spellcheking feature for WebKit2-Qt to use WebKit C API from WKTextChecker.h. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::updateTextCheckerState): Uses canSendMessage() method instead of isValid() to check whether the message to the WebProcess can be sent. * UIProcess/efl/TextCheckerEfl.cpp: (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged): Calls TextChecker::setContinuousSpellCheckingEnabled which additionaly invokes the client's method. WK2-EFL settings for text checker (ewk_settings.cpp) set the default language (if it wasn't set earlier) to perform the spelling. It allows to pass the tests from editing/spelling directory. 2012-11-02 Byungwoo Lee [EFL][WK2] Change the scope of locking in WorkQueueEfl.cpp. https://bugs.webkit.org/show_bug.cgi?id=98978 Reviewed by Kenneth Rohde Christiansen. Release the m_workItemQueueLock and m_timerWorkItemsLock mutexes immediately after the protected resource is no longer modified to prevent a possible source of a deadlock. And additional mutex locker for the m_writeToPipeDescriptor is added to ensure thread-safety of the sendMessageToThread() function. * Platform/WorkQueue.h: (WorkQueue): * Platform/efl/WorkQueueEfl.cpp: (WorkQueue::insertTimerWorkItem): (WorkQueue::performTimerWork): (WorkQueue::sendMessageToThread): (WorkQueue::dispatch): (WorkQueue::dispatchAfterDelay): 2012-11-02 Byungwoo Lee [EFL][WK2] Use MutexLocker instead of lock()/unlock(). https://bugs.webkit.org/show_bug.cgi?id=101015 Reviewed by Kenneth Rohde Christiansen. Instead of lock()/unlock(), use MutexLocker in WorkQueue::performWork() and WorkQueue::performTimerWork(). The locking scope will be more clear and simple with using MutexLocker. * Platform/efl/WorkQueueEfl.cpp: (WorkQueue::performWork): (WorkQueue::insertTimerWorkItem): (WorkQueue::performTimerWork): (WorkQueue::dispatchAfterDelay): 2012-10-31 Byungwoo Lee [WK2] Change the scope of locking in CoreIPC::Connection class. https://bugs.webkit.org/show_bug.cgi?id=98998 Reviewed by Laszlo Gombos. Release the m_incomingMessagesLock and m_outgoingMessagesLock mutexes immediately after the protected resource is no longer modified to prevent a possible source of a deadlock. The change allows the EFL port to prevent an actual dead-lock situation with some upcoming changes. * Platform/CoreIPC/Connection.cpp: (CoreIPC::Connection::sendMessage): (CoreIPC::Connection::enqueueIncomingMessage): 2012-10-26 Christophe Dumez [EFL][WK2] Get rid of C'ism in text checker API https://bugs.webkit.org/show_bug.cgi?id=100513 Reviewed by Kenneth Rohde Christiansen. Make Ewk_Text_Checker a C++ class and move the WebKitTextChecker code to this new class. This gets rid of the C'ism in the text checker code and make it consistent with other Ewk classes. * PlatformEfl.cmake: * UIProcess/API/efl/ewk_context.cpp: (Ewk_Context::Ewk_Context): * UIProcess/API/efl/ewk_settings.cpp: (spellCheckingLanguagesSetUpdate): (ewk_settings_continuous_spell_checking_enabled_set): (ewk_settings_spell_checking_available_languages_get): (ewk_settings_spell_checking_languages_get): * UIProcess/API/efl/ewk_text_checker.cpp: (ClientCallbacks): (textCheckerEnchant): (clientCallbacks): (isContinuousSpellCheckingEnabled): (setContinuousSpellCheckingEnabled): (uniqueSpellDocumentTag): (closeSpellDocumentWithTag): (checkSpellingOfString): (guessesForWord): (learnWord): (ignoreWord): (Ewk_Text_Checker): (Ewk_Text_Checker::availableSpellCheckingLanguages): (Ewk_Text_Checker::updateSpellCheckingLanguages): (Ewk_Text_Checker::loadedSpellCheckingLanguages): (Ewk_Text_Checker::initialize): * UIProcess/API/efl/ewk_text_checker_private.h: (Ewk_Text_Checker): * UIProcess/efl/WebKitTextChecker.cpp: Removed. * UIProcess/efl/WebKitTextChecker.h: Removed. 2012-10-17 Grzegorz Czajkowski , Michal Roj Implementation of spellchecking feature. https://bugs.webkit.org/show_bug.cgi?id=91854 Reviewed by Gyuyoung Kim. Add spelling implementation for WebKit2-EFL that is based on Enchant library. Additionally the patch provides API to overwrite the default WebKit spellchecker implementation as Enchant library doesn't ensure grammar checking. Application is able to overwrite it by defining its own implementation and setting appropriate callback functions. * PlatformEfl.cmake: Add enchant-related compiler flags: header paths and the library flag. * UIProcess/API/efl/EWebKit2.h: Add ewk_text_checker.h to the main WebKit2-EFL's header to be available for applications. * UIProcess/API/efl/WebKitTextChecker.cpp: Added. Implement the callbacks functions of WKTextChecker. (WebKit): (WebKit::isContinuousSpellCheckingEnabled): (WebKit::setContinuousSpellCheckingEnabled): (WebKit::uniqueSpellDocumentTag): (WebKit::closeSpellDocumentWithTag): (WebKit::checkSpellingOfString): (WebKit::guessesForWord): (WebKit::learnWord): (WebKit::ignoreWord): Those functions are directly given as callback functions for WKTextChecker's client. They choose between WebKit's spelling implementation and client's ones. (WebKit::availableSpellCheckingLanguages): (WebKit::updateSpellCheckingLanguages): (WebKit::loadedSpellCheckingLanguages): They are used by ewk_settings.cpp file and allow to do not expose 'textCheckerEnchant'. * UIProcess/API/efl/WebKitTextChecker.h: Added. Define the functions which choose between WebKit's spelling implementation and the client's ones. (WebKit): * UIProcess/API/efl/ewk_context.cpp: (_Ewk_Context::_Ewk_Context): Attach the spellchecker feature for the context. * UIProcess/API/efl/ewk_text_checker.cpp: Added. (ewk_text_checker_callbacks_get): An internal function to get the client's callback functions. * UIProcess/API/efl/ewk_text_checker.h: Added. Define API to set the client's own spelling implementation. * UIProcess/API/efl/ewk_text_checker_private.h: Added. (_Ewk_Text_Checker): Define the struct with the client's callbacks responisble for spelling. * UIProcess/API/efl/ewk_settings.cpp: (onContinuousSpellCheckingIdler): The application is notified about the spelling setting change on idler to do not block WebKit. The the continuous spell checking may be changed through the context menu option. (spellCheckingLanguagesSetUpdate): The dictionaries are requested on 'idler' to do not block WebKit. (spellCheckingLanguagesSet): Set the languages. (ewk_settings_continuous_spell_checking_change_cb_set): Set the callback function used to notify the client when the spelling setting was changed by WebKit. (ewk_settings_continuous_spell_checking_enabled_get): (ewk_settings_continuous_spell_checking_enabled_set): API to set/get the continuous spell checking. (ewk_settings_spell_checking_available_languages_get): (ewk_settings_spell_checking_languages_set): (ewk_settings_spell_checking_languages_get): API to get/set languages to use by WebKit implementation based on Enchant library. * UIProcess/efl/TextCheckerEfl.cpp: (WebKit::TextChecker::state): (WebKit::TextChecker::isContinuousSpellCheckingAllowed): (WebKit::TextChecker::setContinuousSpellCheckingEnabled): (WebKit::TextChecker::setGrammarCheckingEnabled): (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged): (WebKit::TextChecker::grammarCheckingEnabledStateChanged): (WebKit::TextChecker::uniqueSpellDocumentTag): (WebKit::TextChecker::closeSpellDocumentWithTag): (WebKit::TextChecker::checkSpellingOfString): (WebKit::TextChecker::checkGrammarOfString): Remove WebCore namaspace as it's already defined for the whole file. (WebKit::TextChecker::spellingUIIsShowing): (WebKit::TextChecker::toggleSpellingUIIsShowing): (WebKit::TextChecker::updateSpellingUIWithMisspelledWord): (WebKit::TextChecker::updateSpellingUIWithGrammarString): (WebKit::TextChecker::getGuessesForWord): (WebKit::TextChecker::learnWord): (WebKit::TextChecker::ignoreWord): Those call WKTextChecker client's methods. 2012-09-14 Grzegorz Czajkowski Add method to get the list of all available dictionaries https://bugs.webkit.org/show_bug.cgi?id=96518 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitTextChecker.cpp: (WebKitTextChecker::getSpellCheckingLanguages): Update the method name that is called inside getSpellCheckingLanguages. This replace doesn't affect any on API changes. 2012-09-12 Byungwoo Lee [EFL][WK2] WorkQueue::dispatchAfterDelay() doesn't work properly. https://bugs.webkit.org/show_bug.cgi?id=91179 Reviewed by Gyuyoung Kim. When UI Process is crashed and WebProcess's ecore main loop is very busy or lockup also, watchdocCallback() function in the ChildProcess.cpp doesn't triggered. And this is because of that WorkQueue::dispatchAfterDelay() function uses ecore timer for getting timer event. For removing the dependency between the dispatchAfterDelay() and ecore main loop, new timer event mechanism is added to WorkQueue main loop. * Platform/WorkQueue.h: (TimerWorkItem): (WorkQueue::TimerWorkItem::dispatch): (WorkQueue::TimerWorkItem::expireTime): (WorkQueue::TimerWorkItem::expired): (WorkQueue): * Platform/efl/WorkQueueEfl.cpp: (WorkQueue::TimerWorkItem::create): (WorkQueue::TimerWorkItem::TimerWorkItem): (WorkQueue::performFileDescriptorWork): (WorkQueue::getCurrentTime): (WorkQueue::getNextTimeOut): (WorkQueue::performTimerWork): (WorkQueue::workQueueThread): (WorkQueue::dispatchAfterDelay): 2012-08-06 Mario Sanchez Prada [WK2][GTK] Improvements for the new spell-checking API https://bugs.webkit.org/show_bug.cgi?id=93262 Reviewed by Carlos Garcia Campos. Improve the way the new spell-checking API is implemented, by using better internal representations for data, documenting better the new functions and using better unit tests. * UIProcess/API/gtk/WebKitTextChecker.cpp: (WebKitTextChecker::getSpellCheckingLanguages): Just return the value previously cached when calling to the setter function. (WebKitTextChecker::setSpellCheckingLanguages): Update the text checker in WebCore and cache the value returned from it. * UIProcess/API/gtk/WebKitTextChecker.h: (WebKitTextChecker): Use a CString instead of an String to cache the list of spell checking languages. Update getter and setter. * UIProcess/API/gtk/WebKitWebContext.cpp: (_WebKitWebContextPrivate): No need to cache the spell checking languages here anymore. (webkit_web_context_get_spell_checking_languages): Improve both implementation and documentation to be more consistent. (webkit_web_context_set_spell_checking_languages): Make 'languages' a mandatory (non-NULL) parameter. Update documentation. * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp: (testWebContextSpellChecker): Test even more situations. 2012-08-22 Carlos Garcia Campos [GTK] Preferred languages and spellchecker APIs are not consistent in WebKit2 https://bugs.webkit.org/show_bug.cgi?id=94683 Reviewed by Alejandro G. Castro. Change spell-checker and preferred languages API to use a GStrv instead of a comma-separated string and GList. This makes the API more consistent and convenient to use. * UIProcess/API/gtk/WebKitTextChecker.cpp: (WebKitTextChecker::getSpellCheckingLanguages): Return a Vector instead of a String. (WebKitTextChecker::setSpellCheckingLanguages): Receive a Vector instead of a String. * UIProcess/API/gtk/WebKitTextChecker.h: (WebKitTextChecker): Use a GPtrArray to cache languages. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_get_spell_checking_languages): (webkit_web_context_set_spell_checking_languages): (webkit_web_context_set_preferred_languages): * UIProcess/API/gtk/WebKitWebContext.h: * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp: (testWebContextSpellChecker): (testWebContextLanguages): 2012-11-07 Christophe Dumez Add replaceWithLiteral() method to WTF::String https://bugs.webkit.org/show_bug.cgi?id=101257 Reviewed by Benjamin Poulain. Substitute String::replace() calls by String::replaceWithLiteral() where adequate, for efficiency. * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::makeURLString): 2012-10-23 Alexander Shalamov [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function https://bugs.webkit.org/show_bug.cgi?id=100110 Reviewed by Kenneth Rohde Christiansen. PlatformScreenEfl functions and systemBeep() depend on ecore_x functionality, therefore, ecore_x should be initialized when web process starts to avoid re-initialization. * WebProcess/efl/WebProcessMainEfl.cpp: (WebKit::WebProcessMainEfl): Initialized ecore_x module. 2012-10-31 Kenneth Rohde Christiansen [WK2/EFL] Make sure all our events are transformed correctly https://bugs.webkit.org/show_bug.cgi?id=100836 Reviewed by Alexis Menard. When moving to using the tiled backing store, we need to transform our events before sending them to the web process. We needed to do that before as well, as the webkit view doesn't have to be positioned at (0,0), but it was done in a hacking way in the WebEvent creating. Now we generate two transforms, one for transforming points to the web content, and one for transforming them into the device screen coordinate system. This fixes the global position which was wrong before. * Shared/NativeWebMouseEvent.h: (NativeWebMouseEvent): * Shared/NativeWebTouchEvent.h: (NativeWebTouchEvent): * Shared/NativeWebWheelEvent.h: (NativeWebWheelEvent): * Shared/efl/NativeWebMouseEventEfl.cpp: (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): * Shared/efl/NativeWebTouchEventEfl.cpp: (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): * Shared/efl/NativeWebWheelEventEfl.cpp: (WebKit::NativeWebWheelEvent::NativeWebWheelEvent): * Shared/efl/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebMouseEvent): (WebKit::WebEventFactory::createWebWheelEvent): (WebKit::WebEventFactory::createWebTouchEvent): * Shared/efl/WebEventFactory.h: (WebEventFactory): * UIProcess/API/efl/ewk_view.cpp: (toDeviceScreenTransform): (toWebContentTransform): (_ewk_view_smart_mouse_wheel): (_ewk_view_smart_mouse_down): (_ewk_view_smart_mouse_up): (_ewk_view_smart_mouse_move): (ewk_view_feed_touch_event): 2012-10-23 Eunmi Lee [EFL][WK2] Convert WebEvent's timestamp from millisecond to second. https://bugs.webkit.org/show_bug.cgi?id=100101 Reviewed by Kenneth Rohde Christiansen. Convert timestamp to second to create WebEvent from Evas event because the unit of timestamp from Evas Event is millisecond, but the unit of timestamp for WebEvent is second. * Shared/efl/WebEventFactory.cpp: (WebKit::convertMillisecondToSecond): (WebKit): (WebKit::WebEventFactory::createWebMouseEvent): (WebKit::WebEventFactory::createWebWheelEvent): (WebKit::WebEventFactory::createWebKeyboardEvent): 2012-07-29 Patrick Gansterer [CMake] Use WEBKIT_CREATE_FORWARDING_HEADERS to generate WK2 forwarding headers https://bugs.webkit.org/show_bug.cgi?id=83579 Reviewed by Daniel Bates. Using a list of directories in combination with the WEBKIT_CREATE_FORWARDING_HEADERS macro allows us to share the common generation of forwarding headers across ports. * CMakeLists.txt: * PlatformEfl.cmake: 2012-07-28 Sam Weinig Stop copying unnecessary files in WebKit2 build https://bugs.webkit.org/show_bug.cgi?id=92587 Reviewed by Dan Bernstein. * WebKit2.xcodeproj/project.pbxproj: We were accidentally copying ColorSpaceData.h and EventDispatcher.messages.in into the build products. Stop this. 2012-07-28 Ryuan Choi [WK2][EFL] Add ewk_view_scale_{get|set} to EwkView. https://bugs.webkit.org/show_bug.cgi?id=92446 Reviewed by Kenneth Rohde Christiansen. Add methods to Ewk_View to get or set the scale factor of page. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_scale_set): (ewk_view_scale_get): * UIProcess/API/efl/ewk_view.h: 2012-07-28 Mario Sanchez Prada [WK2][GTK] Implement a new spell checker API for WebKit2GTK+ https://bugs.webkit.org/show_bug.cgi?id=90268 Reviewed by Martin Robinson. Add a simple spell checking API to WK2, allowing to enable/disable this feature and to define a list of languages associated to it. * GNUmakefile.am: Add flags to handle the SPELLCHECK feature. * GNUmakefile.list.am: Added new files Added new internal class that will act both as the implementation of TextCheckerClient and as the object WebKitWebContext will depend on to implement the newly added API. * UIProcess/API/gtk/WebKitTextChecker.cpp: Added. (toTextChecker): (continuousSpellCheckingEnabledCallback): (setContinuousSpellCheckingEnabledCallback): (checkSpellingOfStringCallback): (guessesForWordCallback): (learnWordCallback): (ignoreWordCallback): (WebKitTextChecker::~WebKitTextChecker): (WebKitTextChecker::create): (WebKitTextChecker::WebKitTextChecker): (WebKitTextChecker::checkSpellingOfString): (WebKitTextChecker::getGuessesForWord): (WebKitTextChecker::learnWord): (WebKitTextChecker::ignoreWord): (WebKitTextChecker::setSpellCheckingEnabled): (WebKitTextChecker::setSpellCheckingLanguages): * UIProcess/API/gtk/WebKitTextChecker.h: Added. (WebKitTextChecker): (WebKitTextChecker::isSpellCheckingEnabled): (WebKitTextChecker::getSpellCheckingLanguages): Added WKTextChecker to WebKitPrivate.h, needed in WebKitTextChecker. * UIProcess/API/gtk/WebKitPrivate.h: Add new API to WebKitWebContext to allow enabling/disabling this spell checking feature, and to set/get the list of languages used to decide which dictionaries will be consulted. * UIProcess/API/gtk/WebKitWebContext.cpp: (_WebKitWebContextPrivate): (createDefaultWebContext): (webkit_web_context_get_spell_checking_enabled): New API. (webkit_web_context_set_spell_checking_enabled): Ditto. (webkit_web_context_get_spell_checking_languages): Ditto. (webkit_web_context_set_spell_checking_languages): Ditto. * UIProcess/API/gtk/WebKitWebContext.h: New tests for checking the new API added to WebKitWebContext. * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp: (testWebContextSpellChecker): (beforeAll): Update documentation with new sections and symbols. * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: 2012-07-27 Christophe Dumez [EFL][WK2] Assertion hit in ewk_cookie_manager.cpp https://bugs.webkit.org/show_bug.cgi?id=92544 Reviewed by Kenneth Rohde Christiansen. Removed wrong assertion in ewk_cookie_manager.cpp and replace it by an if check. The assertion was sometimes hit by our unit tests. * UIProcess/API/efl/ewk_cookie_manager.cpp: (cookiesDidChange): 2012-07-27 Anders Carlsson Don't use an NSUserDefault for disabling the web process sandbox https://bugs.webkit.org/show_bug.cgi?id=92542 Reviewed by Mark Rowe. The user default was really helpful during WebKit2 bringup, but we no longer need to pay the IPC cost of initializing NSUserDefaults at startup, so get rid of the preference and use a good old #ifdef instead. * WebProcess/mac/WebProcessMac.mm: (WebKit::initializeSandbox): 2012-07-27 Christophe Dumez [WK2][WTR] LayoutTestController.deliverWebIntent() needs to be implemented https://bugs.webkit.org/show_bug.cgi?id=92228 Reviewed by Anders Carlsson. Add C API to create a WKIntentData and to deliver it to a frame. This is needed by WebKitTestRunner to implement LayoutTestController.deliverWebIntent(). * UIProcess/API/C/WKIntentData.cpp: (WKIntentDataCreate): * UIProcess/API/C/WKIntentData.h: * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageDeliverIntentToFrame): * WebProcess/InjectedBundle/API/c/WKBundlePage.h: * WebProcess/WebPage/WebPage.h: (WebPage): Make deliverIntentToFrame() public so that it can be used by WKBundlePage. 2012-07-27 Anders Carlsson Show the unavailable plug-in indicator for Java applets as well https://bugs.webkit.org/show_bug.cgi?id=92521 Reviewed by Sam Weinig. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::unavailablePluginButtonClicked): This can now be called on applet elements as well. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::createJavaAppletWidget): Get the MIME type from the applet element. 2012-07-27 Gyuyoung Kim [WK2] Fix build warning in WebEventConversion.cpp https://bugs.webkit.org/show_bug.cgi?id=92517 Reviewed by Darin Adler. There is a build warning related to comparison between signed and unsigned integer expressions. * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent): 2012-07-27 Gyuyoung Kim [WK2] Fix build warning in WebEventConversion.cpp https://bugs.webkit.org/show_bug.cgi?id=92517 Reviewed by Darin Adler. There is a build warning related to comparison between signed and unsigned integer expressions. * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent): 2012-07-27 Christophe Dumez [EFL][WK2] Add download client for Ewk_Context https://bugs.webkit.org/show_bug.cgi?id=91345 Reviewed by Kenneth Rohde Christiansen. Add download client for Ewk_Context so that information about downloads can be reported to the client application via Ewk_View signals. The client application needs to listen for "download,request" signal on the view and set the download path for the download in the callback in order to accept it. If the signal is ignored or if the download path is not set the download will fail. A new Ewk_Download_Job type is introduced to provide information relative to a download to the client and to allow the client to interact with it (e.g. set its download path, cancel it, ...). * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/PageClientImpl.cpp: (WebKit::PageClientImpl::handleDownloadRequest): (WebKit): * UIProcess/API/efl/PageClientImpl.h: (PageClientImpl): * UIProcess/API/efl/ewk_context.cpp: (_Ewk_Context): (_Ewk_Context::_Ewk_Context): (_Ewk_Context::~_Ewk_Context): (ewk_context_download_job_add): (ewk_context_download_job_get): (ewk_context_download_job_remove): * UIProcess/API/efl/ewk_context_download_client.cpp: Added. (toEwkContext): (decideDestinationWithSuggestedFilename): (didReceiveResponse): (didCreateDestination): (didReceiveData): (didFail): (didCancel): (didFinish): (ewk_context_download_client_attach): * UIProcess/API/efl/ewk_context_download_client_private.h: Added. * UIProcess/API/efl/ewk_context_private.h: * UIProcess/API/efl/ewk_download_job.cpp: Added. (_Ewk_Download_Job): (_Ewk_Download_Job::_Ewk_Download_Job): (_Ewk_Download_Job::~_Ewk_Download_Job): (ewk_download_job_ref): (ewk_download_job_unref): (ewk_download_job_id_get): (ewk_download_job_view_get): (ewk_download_job_state_get): (ewk_download_job_request_get): (ewk_download_job_response_get): (ewk_download_job_destination_get): (ewk_download_job_destination_set): (ewk_download_job_suggested_filename_get): (ewk_download_job_cancel): (ewk_download_job_estimated_progress_get): (ewk_download_job_elapsed_time_get): (ewk_download_job_response_set): (ewk_download_job_suggested_filename_set): (ewk_download_job_received_data): (ewk_download_job_state_set): (ewk_download_job_new): * UIProcess/API/efl/ewk_download_job.h: Added. * UIProcess/API/efl/ewk_download_job_private.h: Added. (WebKit): * UIProcess/API/efl/ewk_url_response.cpp: (ewk_url_response_content_length_get): Add a function to retrieve the content length of a URL response. * UIProcess/API/efl/ewk_url_response.h: * UIProcess/API/efl/ewk_view.cpp: (ewk_view_download_job_cancelled): (ewk_view_download_job_requested): (ewk_view_download_job_failed): (ewk_view_download_job_finished): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_private.h: * UIProcess/API/efl/tests/resources/test.pdf: Added. * UIProcess/API/efl/tests/test_ewk2_download_job.cpp: Added. This tests the download functionality. (DownloadTestData): (fileExists): (serverCallback): (on_download_requested): (on_download_cancelled): (on_download_failed): (on_download_finished): (TEST_F): * UIProcess/PageClient.h: (PageClient): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::receivedPolicyDecision): (WebKit): (WebKit::WebPageProxy::handleDownloadRequest): * UIProcess/WebPageProxy.h: (WebPageProxy): 2012-07-27 YoungTaeck Song [WK2][EFL] Add an ACCELERATED_COMPOSITING implementation for Efl WebKit2 https://bugs.webkit.org/show_bug.cgi?id=91581 Reviewed by Noam Rosenthal. This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation. When enter accelerated compositing mode, create evas_gl, evas_gl_context, and evas_gl_surface. * PlatformEfl.cmake: * Shared/LayerTreeContext.h: (LayerTreeContext): * UIProcess/API/efl/PageClientImpl.cpp: (WebKit::PageClientImpl::viewSize): (WebKit::PageClientImpl::enterAcceleratedCompositingMode): (WebKit::PageClientImpl::exitAcceleratedCompositingMode): * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (_Ewk_View_Private_Data::_Ewk_View_Private_Data): (ewk_view_size_get): (ewk_view_create_gl_surface): (ewk_view_enter_accelerated_compositing_mode): (ewk_view_exit_accelerated_compositing_mode): (_ewk_view_smart_calculate): * UIProcess/API/efl/ewk_view_private.h: 2012-07-27 Christophe Dumez [EFL][WK2] Add API to Ewk_Cookie_Manager to watch for cookie changes https://bugs.webkit.org/show_bug.cgi?id=92484 Reviewed by Kenneth Rohde Christiansen. Add API tp Ewk_Cookie_Manager so that the client can watch for cookie changes. * UIProcess/API/efl/ewk_cookie_manager.cpp: * UIProcess/API/efl/ewk_cookie_manager.h: * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp: Add unit tests for cookie changes watching. 2012-07-27 Christophe Dumez [EFL][WK2] Stop using C API to interact with the page in Ewk_View https://bugs.webkit.org/show_bug.cgi?id=92463 Reviewed by Simon Hausmann. Stop using C API to interact with the PageProxy in Ewk_View and use the PageProxy object directly. This avoids useless converting to WK type using toAPI() all the time. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_base_add): (ewk_view_uri_update): (ewk_view_uri_set): (ewk_view_reload): (ewk_view_reload_bypass_cache): (ewk_view_stop): (ewk_view_load_progress_get): (ewk_view_device_pixel_ratio_set): (ewk_view_theme_get): (ewk_view_cursor_set): (ewk_view_back): (ewk_view_forward): (ewk_view_intent_deliver): (ewk_view_back_possible): (ewk_view_forward_possible): (ewk_view_setting_encoding_custom_get): (ewk_view_setting_encoding_custom_set): 2012-07-27 Dominik Röttsches [Cairo] Add complex font drawing using HarfbuzzNG https://bugs.webkit.org/show_bug.cgi?id=91864 Reviewed by Simon Hausmann and Martin Robinson. Adding includes for harfbuzz folders. * CMakeLists.txt: 2012-07-27 Christophe Dumez [EFL][WK2] Add more Ewk_View unit tests https://bugs.webkit.org/show_bug.cgi?id=92407 Reviewed by Kenneth Rohde Christiansen. Add more unit tests for WebKit2 Ewk_View API. In particular, navigation, HTML loading and device pixel ratio functions are now tested. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: (EWK2UnitTest::EWK2UnitTestBase::SetUp): Call ewk_init() instead of duplicating initialization code. (EWK2UnitTest::EWK2UnitTestBase::TearDown): call ewk_shutdown(). (TitleChangedData): (EWK2UnitTest): (EWK2UnitTest::onTitleChanged): (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo): Add convenience method to wait until the view main frame title changes to a given value. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h: (EWK2UnitTestBase): * UIProcess/API/efl/tests/test_ewk2_view.cpp: (TEST_F): (serverCallbackNavigation): 2012-07-27 Mikhail Pozdnyakov [EFL][WK2] Keyboard events miss key location data. https://bugs.webkit.org/show_bug.cgi?id=92235 Reviewed by Simon Hausmann. EFL WK2 did not initialize WebKeyboardEvent::m_isKeypad field. This caused failure of fast/events/keydown-numpad-keys.html test. * Shared/efl/WebEventFactory.cpp: WebKeyboardEvent::m_isKeypad is initialized. (WebKit::WebEventFactory::createWebKeyboardEvent): 2012-07-27 Gyuyoung Kim [EFL] Fix wrong return value in EWK_VIEW_XXX macro. https://bugs.webkit.org/show_bug.cgi?id=92466 Reviewed by Simon Hausmann. There are wrong return values in EWK_VIEW_XXX macros. The wrong return values should be fixed. In addition, API description is also modified according to returned value change. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_uri_set): (ewk_view_load_progress_get): (ewk_view_device_pixel_ratio_get): * UIProcess/API/efl/ewk_view.h: 2012-07-27 Christophe Dumez [EFL][WK2] Add unit tests for Ewk_View form client https://bugs.webkit.org/show_bug.cgi?id=92468 Reviewed by Simon Hausmann. Add unit test for form client functionality in Ewk_View. * UIProcess/API/efl/tests/test_ewk2_view.cpp: (onFormAboutToBeSubmitted): (TEST_F): 2012-07-26 Zeno Albisser Unreviewed Qt buildfix after r123786. Qt-minimal builds with ENABLE_REQUEST_ANIMATION_FRAME=0. Therefore adding #ifdefs to allow for that configuration. * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp: (WebKit): * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h: (LayerTreeCoordinator): 2012-07-26 Zeno Albisser [Qt] requestAnimationFrame should only trigger when a new frame can be displayed. https://bugs.webkit.org/show_bug.cgi?id=88638 Disable REQUEST_ANIMATION_FRAME_TIMER for the Qt port and tie the servicing of scripted animations to layer syncing for WK2. For WK1 we rely on the RefreshAnimation that is based on QAbstractAnimation. Reviewed by Jocelyn Turcotte. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit): (WebKit::WebChromeClient::scheduleAnimation): * WebProcess/WebCoreSupport/WebChromeClient.h: (WebChromeClient): * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp: (WebKit::LayerTreeCoordinator::performScheduledLayerFlush): (WebKit::LayerTreeCoordinator::scheduleAnimation): (WebKit): * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h: (LayerTreeCoordinator): * WebProcess/WebPage/LayerTreeHost.h: (LayerTreeHost): 2012-07-26 Jer Noble Add a ChromeClient method to send diagnostic logging messages from WebCore to the client. https://bugs.webkit.org/show_bug.cgi?id=92340 Reviewed by Anders Carlsson. Pipe the ChromeClient logDiagnosticMessage() function through WebKit2 to a new bundle class InjectedBundlePageDiagnosticLoggingClient, to be implemented by the client. * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageSetDiagnosticLoggingClient): Added. * WebProcess/InjectedBundle/API/c/WKBundlePage.h: * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Added. (WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage): * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Added. (InjectedBundlePageDiagnosticLoggingClient): * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::logDiagnosticMessage): * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::initializeInjectedBundleDiagnosticLoggingClient): * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::injectedBundleDiagnosticLoggingClient): Add a convenience class to retrieve the diagnostic message keys: * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Added. (WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage): * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Added. (InjectedBundlePageDiagnosticLoggingClient): Add the InjectedBundlePageDiagnosticLoggingClient.cpp,h files. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * win/WebKit2.vcproj: * WebKit2.xcodeproj/project.pbxproj: 2012-07-25 Jer Noble Add setting to enable and disable diagnostic logging. https://bugs.webkit.org/show_bug.cgi?id=92337 Reviewed by Anders Carlsson. Add a WebKit2 WKPreferences API to set set the WebCore diagnosticLoggingEnabled setting. * Shared/WebPreferencesStore.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetDiagnosticLoggingEnabled): (WKPreferencesGetDiagnosticLoggingEnabled): * UIProcess/API/C/WKPreferencesPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Ensure this preference is propagated to Settings whenever the preferences change. 2012-07-26 Thiago Marcos P. Santos [EFL][WK2] Regression(r123731): Linking errors due to efreet functions https://bugs.webkit.org/show_bug.cgi?id=92378 Unreviewed build fix. The library list created by PlatformEfl.cmake was being erased by a SET called after including the platform specific file. Luckily the dependencies were fulfilled by other targets until efreet was add. * CMakeLists.txt: 2012-07-26 Christophe Dumez [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp https://bugs.webkit.org/show_bug.cgi?id=92387 Reviewed by Kenneth Rohde Christiansen. Fix compilation warning in EWK2UnitTestServer.cpp. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp: (EWK2UnitTestServer::EWK2UnitTestServer): 2012-07-26 Christophe Dumez [EFL][WK2] Implement Network Information provider https://bugs.webkit.org/show_bug.cgi?id=92343 Reviewed by Kenneth Rohde Christiansen. Add Network Information provider for WebKit2 EFL by using NetworkInfoProviderEfl class from WebCore. * CMakeLists.txt: * PlatformEfl.cmake: * UIProcess/API/efl/NetworkInfoProvider.cpp: Added. (toNetworkInfoProvider): (startUpdatingCallback): (stopUpdatingCallback): (getBandwidthCallback): (isMeteredCallback): (NetworkInfoProvider::create): (NetworkInfoProvider::NetworkInfoProvider): (NetworkInfoProvider::~NetworkInfoProvider): (NetworkInfoProvider::bandwidth): (NetworkInfoProvider::metered): (NetworkInfoProvider::startUpdating): (NetworkInfoProvider::stopUpdating): * UIProcess/API/efl/NetworkInfoProvider.h: Added. (NetworkInfoProvider): 2012-07-26 Christophe Dumez [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp https://bugs.webkit.org/show_bug.cgi?id=92387 Reviewed by Kenneth Rohde Christiansen. Fix compilation warning in EWK2UnitTestServer.cpp. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp: (EWK2UnitTestServer::EWK2UnitTestServer): 2012-07-26 Thiago Marcos P. Santos [EFL][WK2] Regression(r123731): Linking errors due to efreet functions https://bugs.webkit.org/show_bug.cgi?id=92378 Unreviewed build fix. The library list created by PlatformEfl.cmake was being erased by a SET called after including the platform specific file. Luckily the dependencies were fulfilled by other targets until efreet was add. * CMakeLists.txt: 2012-07-26 Christophe Dumez [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp https://bugs.webkit.org/show_bug.cgi?id=92387 Reviewed by Kenneth Rohde Christiansen. Fix compilation warning in EWK2UnitTestServer.cpp. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp: (EWK2UnitTestServer::EWK2UnitTestServer): 2012-07-26 Christophe Dumez [EFL][WK2] Implement Network Information provider https://bugs.webkit.org/show_bug.cgi?id=92343 Reviewed by Kenneth Rohde Christiansen. Add Network Information provider for WebKit2 EFL by using NetworkInfoProviderEfl class from WebCore. * CMakeLists.txt: * PlatformEfl.cmake: * UIProcess/API/efl/NetworkInfoProvider.cpp: Added. (toNetworkInfoProvider): (startUpdatingCallback): (stopUpdatingCallback): (getBandwidthCallback): (isMeteredCallback): (NetworkInfoProvider::create): (NetworkInfoProvider::NetworkInfoProvider): (NetworkInfoProvider::~NetworkInfoProvider): (NetworkInfoProvider::bandwidth): (NetworkInfoProvider::metered): (NetworkInfoProvider::startUpdating): (NetworkInfoProvider::stopUpdating): * UIProcess/API/efl/NetworkInfoProvider.h: Added. (NetworkInfoProvider): 2012-07-26 Christophe Dumez [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp https://bugs.webkit.org/show_bug.cgi?id=92387 Reviewed by Kenneth Rohde Christiansen. Fix compilation warning in EWK2UnitTestServer.cpp. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp: (EWK2UnitTestServer::EWK2UnitTestServer): 2012-07-26 Christophe Dumez [EFL][WK2] Add unit tests for Ewk_Context https://bugs.webkit.org/show_bug.cgi?id=92005 Reviewed by Antonio Gomes. Add unit tests for WebKit2 Ewk_Context. * PlatformEfl.cmake: * UIProcess/API/efl/ewk_url_scheme_request.cpp: (ewk_url_scheme_request_finish): * UIProcess/API/efl/ewk_url_scheme_request.h: Mark content_data argument as const. * UIProcess/API/efl/tests/test_ewk2_context.cpp: Added. (TEST_F): (schemeRequestCallback): 2012-07-26 Christophe Dumez [EFL][WK2] Add form client for Ewk_View https://bugs.webkit.org/show_bug.cgi?id=92358 Reviewed by Kenneth Rohde Christiansen. Implement a form client for EFL port in order to send a "form,request,new" signal on the Ewk_View whenever a form will be submitted. The Ewk_Form_Submission_Request type is introduced to provide the client with information about the form (e.g. text fields contained in the form) and to submit it. This is typically used to store login information that can be used later to pre-fill the form. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_form_submission_request.cpp: Added. (_Ewk_Form_Submission_Request): (_Ewk_Form_Submission_Request::_Ewk_Form_Submission_Request): (_Ewk_Form_Submission_Request::~_Ewk_Form_Submission_Request): (ewk_form_submission_request_ref): (ewk_form_submission_request_unref): (ewk_form_submission_request_field_names_get): (ewk_form_submission_request_field_value_get): (ewk_form_submission_request_submit): (ewk_form_submission_request_new): * UIProcess/API/efl/ewk_form_submission_request.h: Added. * UIProcess/API/efl/ewk_form_submission_request_private.h: Added. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_base_add): (ewk_view_form_submission_request_new): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_form_client.cpp: Added. (willSubmitForm): (ewk_view_form_client_attach): * UIProcess/API/efl/ewk_view_form_client_private.h: Added. * UIProcess/API/efl/ewk_view_private.h: 2012-07-26 Mikhail Pozdnyakov [WK2] WebPage::handleEditingKeyboardEvent does not check whether the node allows editing. https://bugs.webkit.org/show_bug.cgi?id=92364 Reviewed by Kenneth Rohde Christiansen. Added a check whether the input node allows editing. If editing is not allowed text input event will not be emitted. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::handleEditingKeyboardEvent): 2012-07-26 Zoltan Nyul [EFL] EFL port should use XDG paths https://bugs.webkit.org/show_bug.cgi?id=91719 Reviewed by Kenneth Rohde Christiansen. Setting xdg paths for application cache, web-database and local-storage. * PlatformEfl.cmake: * UIProcess/efl/WebContextEfl.cpp: (WebKit::WebContext::applicationCacheDirectory): (WebKit::WebContext::platformDefaultDatabaseDirectory): (WebKit::WebContext::platformDefaultLocalStorageDirectory): 2012-07-26 Sudarsana Nagineni [EFL] [WK2] Memory leak in ewk_view_resource_load_client.cpp https://bugs.webkit.org/show_bug.cgi?id=92099 Reviewed by Kentaro Hara. Fix a memory leak by clearing the loadingResources HashMap on exit. * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data::~_Ewk_View_Private_Data): (_ewk_view_priv_loading_resources_clear): (ewk_view_load_provisional_started): 2012-07-26 Gyuyoung Kim [DRT] LTC:: pageNumberForElementById() could be moved to Internals https://bugs.webkit.org/show_bug.cgi?id=92091 Reviewed by Kentaro Hara. Missing a symbol filter for Mac win port. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-07-25 Seokju Kwon [EFL][WK2] Implement the inspector for WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=92213 Reviewed by Ryosuke Niwa. Partial Implementation of WebInspectorProxyEfl for WebkitTestRunner. And Web Inspector resources installation. * PlatformEfl.cmake: * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::WebInspectorProxy): * UIProcess/WebInspectorProxy.h: (WebInspectorProxy): * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::WebInspectorProxy::platformCreateInspectorPage): (WebKit::WebInspectorProxy::platformDidClose): (WebKit::WebInspectorProxy::inspectorPageURL): (WebKit::WebInspectorProxy::inspectorBaseURL): 2012-07-25 Caio Marcelo de Oliveira Filho Create a specialized struct for use in HashMap iterators https://bugs.webkit.org/show_bug.cgi?id=92137 Reviewed by Ryosuke Niwa. * Platform/CoreIPC/ArgumentCoders.h: Add encode/decode for KeyValuePair. 2012-07-25 Anders Carlsson Crash when calling PluginView::pluginFocusOrWindowFocusChanged when the web page is null https://bugs.webkit.org/show_bug.cgi?id=92289 Reviewed by Andreas Kling. Plug-in views that outlive their containing web page for various reasons (such as being protected from destruction) need to null check the web page. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::pluginFocusOrWindowFocusChanged): (WebKit::PluginView::setComplexTextInputState): 2012-07-25 Christophe Dumez [WK2][WTR] LayoutTestController.sendWebIntentResponse() needs to be implemented https://bugs.webkit.org/show_bug.cgi?id=92227 Reviewed by Kenneth Rohde Christiansen. Add new InjectedBundleIntentRequest class to wrap WebCore's IntentRequest and use it in InjectedBundle's didReceiveIntentForFrame callback. The WebKitTestRunner needs to be able to reply to a Web intent request in order to implement LayoutTestController.sendWebIntentResponse(). As a consequence, passing a WebIntentData type in not enough. * CMakeLists.txt: * GNUmakefile.list.am: * Shared/API/c/WKBase.h: * Shared/APIObject.h: * Shared/IntentData.cpp: (WebKit::IntentData::IntentData): (WebKit): * Shared/IntentData.h: (WebCore): (WebKit::IntentData::IntentData): (IntentData): * Target.pri: * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h: (WebKit): * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.cpp: Copied from Source/WebKit2/Shared/IntentData.cpp. (WKBundleIntentRequestGetTypeID): (WKBundleIntentRequestCopyIntent): (WKBundleIntentRequestPostResult): (WKBundleIntentRequestPostFailure): * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.h: Copied from Source/WebKit2/Shared/IntentData.h. * WebProcess/InjectedBundle/API/c/WKBundlePage.h: * WebProcess/InjectedBundle/InjectedBundleIntentRequest.cpp: Copied from Source/WebKit2/Shared/IntentData.cpp. (WebKit): (WebKit::InjectedBundleIntentRequest::create): (WebKit::InjectedBundleIntentRequest::InjectedBundleIntentRequest): (WebKit::InjectedBundleIntentRequest::postResult): (WebKit::InjectedBundleIntentRequest::postFailure): (WebKit::InjectedBundleIntentRequest::intent): * WebProcess/InjectedBundle/InjectedBundleIntentRequest.h: Copied from Source/WebKit2/Shared/IntentData.h. (WebCore): (WebKit): (InjectedBundleIntentRequest): (WebKit::InjectedBundleIntentRequest::type): * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: (WebKit::InjectedBundlePageLoaderClient::didReceiveIntentForFrame): * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: (WebKit): (InjectedBundlePageLoaderClient): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchIntent): 2012-07-25 Anders Carlsson Crash when a web page is closed with outstanding scrolling thread barriers https://bugs.webkit.org/show_bug.cgi?id=92280 Reviewed by Andreas Kling. There was a check in forceRepaintAsync to handle the drawing area going away before the block had been invoked, but this check needs to be done earlier (as the FIXME suggested). Move this check to dispatchAfterEnsuringUpdatedScrollPosition instead. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::forceRepaintAsync): (WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition): 2012-07-25 Alexey Proskuryakov Chinese IM receives incorrect/duplicated key events in text fields in webpages in Safari. https://bugs.webkit.org/show_bug.cgi?id=89048 Reviewed by Andreas Kling. Cannot test text input from UI process side. Stop relying on IPC to handle key events in order. There are too many complications where out of order delivery is performed. Instead, queue the events at UI process side. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleKeyboardEvent): (WebKit::WebPageProxy::didReceiveEvent): 2012-07-25 Gyuyoung Kim [EFL] Use eina_stringshare_add instead of strdup. https://bugs.webkit.org/show_bug.cgi?id=92072 Reviewed by Kentaro Hara. Eina of EFL libraries supports a string functionality that replaces strdup. So, EFL port needs to replace strdup with eina_stringshare_add function. * UIProcess/API/efl/ewk_intent.cpp: (ewk_intent_suggestions_get): (ewk_intent_extra_get): * UIProcess/API/efl/ewk_intent.h: 2012-07-25 Ryuan Choi [EFL][WK2] Add ewk_view_cursor_set to change cursor. https://bugs.webkit.org/show_bug.cgi?id=89140 Reviewed by Hajime Morita. Implement ewk_view_cursor_set to support cursor changes. * UIProcess/API/efl/PageClientImpl.cpp: (WebKit::PageClientImpl::setCursor): Called ewk_view_cursor_set. * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (_Ewk_View_Private_Data::_Ewk_View_Private_Data): (_Ewk_View_Private_Data::~_Ewk_View_Private_Data): (_ewk_view_priv_new): Check whether ecore_x can be used. (_ewk_view_smart_add): Change order of initialization to use base structure in _ewk_view_priv_new. (ewk_view_cursor_set): Added to set cursor. * UIProcess/API/efl/ewk_view_private.h: 2012-07-25 Ryuan Choi [EFL][WK2] Update uri when the active URI is changed while loading. https://bugs.webkit.org/show_bug.cgi?id=92001 Reviewed by Hajime Morita. For now, ewk_view_uri_get just return the last uri of setter. This patch updates the uri of ewk_view when it is changed while loading. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_uri_update): Added to check whether current active URI has changed and send uri,changed signal if it has changed. (ewk_view_uri_set): Called ewk_view_uri_update to make sure the active uri is updated when the load operation is started. (ewk_view_reload): Ditto. (ewk_view_reload_bypass_cache): Ditto. (ewk_view_load_finished): Ditto. (ewk_view_load_provisional_redirect): Ditto. (ewk_view_load_provisional_started): Ditto. (ewk_view_html_string_load): Ditto. * UIProcess/API/efl/ewk_view.h: Updated comment for uri,changed signal. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp: (EWK2UnitTest::EWK2UnitTestEnvironment::urlForResource): Added to get url of custom resource for test. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h: * UIProcess/API/efl/tests/resources/redirect_uri_to_default.html: Added to test ewk_view_uri_get when the page is redirected. * UIProcess/API/efl/tests/test_ewk2_view.cpp: Ditto. (onLoadFinishedForRedirection): (TEST_F): Added new test case whether ewk_view_uri_get returns correct uri when the page is redirected. 2012-07-25 Mikhail Pozdnyakov [EFL][WK2] Add ewk_main.{cpp,h} to EFL WK2 https://bugs.webkit.org/show_bug.cgi?id=92101 Reviewed by Kenneth Rohde Christiansen. Added a centralized place for general initialization in UI process for EFL WK2. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_main.cpp: Added. (ewk_init): General initialization. (ewk_shutdown): General freeing. (_ewk_init_body): An aux function. * UIProcess/API/efl/ewk_main.h: Added. 2012-07-24 Jae Hyun Park WKContextGetGlobalStatistics() assigns wrong value to wkFrameCount in WKContextStatistics https://bugs.webkit.org/show_bug.cgi?id=92173 Reviewed by John Sullivan. In WKContextGetGlobalStatistics(), wkViewCount in WebContext::Statistics is assigned to wkFrameCount in WKContextStatistics. wkFrameCount in WebContext:Statistics should be assigned to wkFrameCount in WKContextStatistics. * UIProcess/API/C/WKContext.cpp: (WKContextGetGlobalStatistics): 2012-07-24 Sudarsana Nagineni [EFL][WK2] Add unit tests for custom text encoding setting https://bugs.webkit.org/show_bug.cgi?id=91983 Reviewed by Dirk Pranke. Add unit tests for get and set custom text encoding methods. Also, fix a style nit for r123177. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_setting_encoding_custom_set): Fix a style nit - add newline before return. * UIProcess/API/efl/tests/test_ewk2_view.cpp: (TEST_F): 2012-07-24 Ryosuke Niwa WinCairo build fix attempt. * win/WebKit2CFLite.def: 2012-07-24 Ryosuke Niwa Windows build fix attempt. * win/WebKit2.def: 2012-07-24 Jocelyn Turcotte [Qt] Make sure that an AC sync is triggered when the canvas contents is updated. https://bugs.webkit.org/show_bug.cgi?id=92128 Reviewed by Kenneth Rohde Christiansen. This would cause missed frames when animating an accelerated 2D canvas without touching the document. * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp: (WebCore::WebGraphicsLayer::setContentsNeedsDisplay): 2012-07-24 Alexey Proskuryakov [Mac WK2] Improve text input logging https://bugs.webkit.org/show_bug.cgi?id=92147 Reviewed by Andreas Kling. * UIProcess/API/mac/WKView.mm: (-[WKView insertText:replacementRange:]): (-[WKView keyUp:]): (-[WKView keyDown:]): (-[WKView flagsChanged:]): (-[WKView _executeSavedKeypressCommands]): (-[WKView _notifyInputContextAboutDiscardedComposition]): (-[WKView _interpretKeyEvent:savingCommandsTo:WebCore::]): (-[WKView _updateSecureInputState]): 2012-07-24 Christophe Dumez [EFL][WK2] Provide more useful output when an injected bundle cannot be loaded https://bugs.webkit.org/show_bug.cgi?id=92136 Reviewed by Kenneth Rohde Christiansen. Call eina_error_get() in case an injected bundle cannot be loaded in order to print more information about the error. * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp: (WebKit::InjectedBundle::load): 2012-07-24 Sudarsana Nagineni [EFL][WK2] Add vibration client https://bugs.webkit.org/show_bug.cgi?id=91371 Reviewed by Antonio Gomes. Implement Vibration provider for WebKit2 EFL and add an API to set vibration client callbacks by application to handle the tactile feedback in the application when the page content ask for vibration. * CMakeLists.txt: Add WebCore/Modules/vibration to include path. * PlatformEfl.cmake: Add VibrationProvider.cpp file to the build system. * UIProcess/API/efl/VibrationProvider.cpp: Added. (_Ewk_Vibration_Client): Structure contains the vibration client callbacks. (_Ewk_Vibration_Client::_Ewk_Vibration_Client): (toVibrationProvider): Helper function to cast the clientinfo to VibrationProvider. (vibrateCallback): (cancelVibrationCallback): (VibrationProvider::create): (VibrationProvider::VibrationProvider): (VibrationProvider::~VibrationProvider): (VibrationProvider::vibrate): (VibrationProvider::cancelVibration): (VibrationProvider::setVibrationClientCallbacks): * UIProcess/API/efl/VibrationProvider.h: Added. (VibrationProvider): * UIProcess/API/efl/ewk_context.cpp: (_Ewk_Context): (createDefaultEwkContext): (ewk_context_vibration_client_callbacks_set): API to set vibration client callbacks. * UIProcess/API/efl/ewk_context.h: 2012-07-24 Simon Hausmann [Qt] Fix compilation after QtQuick API changes https://bugs.webkit.org/show_bug.cgi?id=91822 Reviewed by Kenneth Rohde Christiansen. QQuickCanvas is now QQuickWindow, QQuickItem::canvas() is window() and rootItem() is contentItem(). Also QQuickWindow::grabFrameBuffer() is now grabWindow(). * UIProcess/API/qt/qquickwebpage.cpp: * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::updateIcon): * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp: (tst_QQuickWebView::multipleWebViews): (tst_QQuickWebView::basicRenderingSanity): (tst_QQuickWebView::transparentWebViews): * UIProcess/API/qt/tests/testwindow.h: (TestWindow::TestWindow): * UIProcess/qt/QtPageClient.cpp: (WebKit::QtPageClient::isViewVisible): * UIProcess/qt/QtWebPageEventHandler.cpp: (WebKit::QtWebPageEventHandler::startDrag): 2012-07-24 Balazs Kelemen [Qt] Add quirks for running the web process in a profiler shell, like valgrind https://bugs.webkit.org/show_bug.cgi?id=87672 Reviewed by Jocelyn Turcotte. If environment variables QT_WEBKIT_WEB_PROCESS_COMMAND_PREFIX and/or QT_WEBKIT_PLUGIN_PROCESS_COMMAND_PREFIX are set, use their values as the prefix of the command when launching the child process. Example usage: export QT_WEB_PROCESS_COMMAND_PREFIX="valgrind --smc-check=all" ./MiniBrowser http://somepage.html ./WebKitTestRunner --no-timeout-at-all some_layouttest.html * UIProcess/Launcher/qt/ProcessLauncherQt.cpp: (WebKit::ProcessLauncher::launchProcess): 2012-07-23 Oswald Buddenhagen [Qt] Fix compilation against namespaced Qt Reviewed by Simon Hausmann. * Platform/CoreIPC/Connection.h: * Platform/PlatformProcessIdentifier.h: * Platform/WorkQueue.h: * Shared/qt/QtNetworkRequestData.h: * Shared/qt/WebEventFactoryQt.h: * UIProcess/API/C/qt/WKNativeEvent.h: * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qwebnavigationhistory_p.h: * UIProcess/API/qt/raw/qrawwebview_p.h: * UIProcess/DrawingAreaProxy.h: * UIProcess/Launcher/ThreadLauncher.h: * UIProcess/LayerTreeCoordinatorProxy.h: * UIProcess/qt/QtViewportHandler.h: * UIProcess/qt/QtWebPageSGNode.h: * UIProcess/qt/WebColorChooserProxyQt.h: * UIProcess/qt/WebGeolocationProviderQt.h: * UIProcess/qt/WebPopupMenuProxyQt.h: * WebProcess/WebProcess.h: 2012-07-24 Christophe Dumez [EFL][WK2] Remove unneeded WebURLRequestEfl and WebURLResponseEfl https://bugs.webkit.org/show_bug.cgi?id=92087 Reviewed by Kenneth Rohde Christiansen. Remove WebURLRequestEfl and WebURLResponseEfl classes and their corresponding C APIs since we don't need / use them. * Shared/API/c/efl/WKURLRequestEfl.cpp: Removed. * Shared/API/c/efl/WKURLRequestEfl.h: Removed. * Shared/API/c/efl/WKURLResponseEfl.cpp: Removed. * Shared/API/c/efl/WKURLResponseEfl.h: Removed. * Shared/efl/WebURLRequestEfl.cpp: Removed. * Shared/efl/WebURLRequestEfl.h: Removed. * Shared/efl/WebURLResponseEfl.cpp: Removed. * Shared/efl/WebURLResponseEfl.h: Removed. * UIProcess/API/efl/ewk_url_request.cpp: 2012-07-24 Pierre Rossi [Qt] Enable touch slider when touch events are enabled https://bugs.webkit.org/show_bug.cgi?id=91013 Reviewed by Kenneth Rohde Christiansen. TOUCH_SLIDER guards are used in WebCore, so we should really be setting the corresponding ENABLE define in features.prf. * Target.pri: 2012-07-24 Christophe Dumez [EFL][WK2] Fix possible crash in didSendRequestForResource https://bugs.webkit.org/show_bug.cgi?id=92077 Reviewed by Kenneth Rohde Christiansen. Add NULL check for wkRedirectResponse in didSendRequestForResource() before using it. The argument may be NULL if there was no redirection. * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_resource_load_client.cpp: (didSendRequestForResource): 2012-07-24 Christophe Dumez [WK2][EFL][GTK] Share WebCoreArgumentCoders for soup-related types https://bugs.webkit.org/show_bug.cgi?id=92073 Reviewed by Kenneth Rohde Christiansen. Move WebCoreArgumentCoders for soup-related types such as ResourceRequest, ResourceResponse and ResourceError from port specific file to Shared/soup/WebCoreArgumentCodersSoup.cpp. This way, the different ports using libsoup can share code and avoid duplication. * GNUmakefile.list.am: * PlatformEfl.cmake: * Shared/efl/WebCoreArgumentCodersEfl.cpp: Removed. * Shared/soup/WebCoreArgumentCodersSoup.cpp: Renamed from Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp. (CoreIPC): (CoreIPC::::encode): (CoreIPC::::decode): 2012-07-23 Sheriff Bot Unreviewed, rolling out r123184, r123195, and r123197. http://trac.webkit.org/changeset/123184 http://trac.webkit.org/changeset/123195 http://trac.webkit.org/changeset/123197 https://bugs.webkit.org/show_bug.cgi?id=92049 pagecycler regression (Requested by morrita on #webkit). * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-07-23 Simon Fraser Part 2 of: Implement sticky positioning https://bugs.webkit.org/show_bug.cgi?id=90046 Reviewed by Ojan Vafai. Turn on ENABLE_CSS_STICKY_POSITION. * Configurations/FeatureDefines.xcconfig: 2012-07-23 Christophe Dumez [WK2] WebKitTestRunner needs to print information about Web intents https://bugs.webkit.org/show_bug.cgi?id=90873 Reviewed by Anders Carlsson. Add Bundle API for Web Intents. This is needed by the WebKitTestRunner to print information about the new intent requests and the intent service registrations. * CMakeLists.txt: Move WebIntentData and WebIntentServiceInfo from UIProcess/ to Shared/. * GNUmakefile.list.am: Move WebIntentData and WebIntentServiceInfo from UIProcess/ to Shared/. * Shared/APIClientTraits.h: * Shared/WebIntentData.cpp: Renamed from Source/WebKit2/UIProcess/WebIntentData.cpp. (WebKit): (WebKit::WebIntentData::WebIntentData): (WebKit::WebIntentData::data): (WebKit::WebIntentData::suggestions): (WebKit::WebIntentData::extra): (WebKit::WebIntentData::extras): * Shared/WebIntentData.h: Renamed from Source/WebKit2/UIProcess/WebIntentData.h. (WebKit): (WebIntentData): (WebKit::WebIntentData::create): (WebKit::WebIntentData::~WebIntentData): (WebKit::WebIntentData::action): (WebKit::WebIntentData::payloadType): (WebKit::WebIntentData::service): (WebKit::WebIntentData::store): (WebKit::WebIntentData::type): * Shared/WebIntentServiceInfo.cpp: Renamed from Source/WebKit2/UIProcess/WebIntentServiceInfo.cpp. (WebKit): (WebKit::WebIntentServiceInfo::WebIntentServiceInfo): * Shared/WebIntentServiceInfo.h: Renamed from Source/WebKit2/UIProcess/WebIntentServiceInfo.h. (WebKit): (WebIntentServiceInfo): (WebKit::WebIntentServiceInfo::create): (WebKit::WebIntentServiceInfo::~WebIntentServiceInfo): (WebKit::WebIntentServiceInfo::action): (WebKit::WebIntentServiceInfo::payloadType): (WebKit::WebIntentServiceInfo::href): (WebKit::WebIntentServiceInfo::title): (WebKit::WebIntentServiceInfo::disposition): (WebKit::WebIntentServiceInfo::type): * Target.pri: Move WebIntentData and WebIntentServiceInfo from UIProcess/ to Shared/. * UIProcess/API/C/WKPage.h: * UIProcess/API/efl/ewk_view_loader_client.cpp: (didReceiveIntentForFrame): (registerIntentServiceForFrame): * UIProcess/WebLoaderClient.cpp: (WebKit::WebLoaderClient::didReceiveIntentForFrame): (WebKit::WebLoaderClient::registerIntentServiceForFrame): * UIProcess/WebLoaderClient.h: (WebLoaderClient): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::registerIntentServiceForFrame): (WebKit::WebPageProxy::didReceiveIntentForFrame): * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/WebPageProxy.messages.in: * WebProcess/InjectedBundle/API/c/WKBundlePage.h: * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: (WebKit): (WebKit::InjectedBundlePageLoaderClient::didReceiveIntentForFrame): (WebKit::InjectedBundlePageLoaderClient::registerIntentServiceForFrame): * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: (WebKit): (InjectedBundlePageLoaderClient): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchIntent): (WebKit::WebFrameLoaderClient::registerIntentService): * WebProcess/qt/QtBuiltinBundlePage.cpp: (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage): 2012-07-23 Christophe Dumez [EFL][WK2] Add unit tests for Ewk_Cookie_Manager https://bugs.webkit.org/show_bug.cgi?id=91639 Reviewed by Antonio Gomes. Add unit tests for Ewk_Cookie_Manager. * PlatformEfl.cmake: * UIProcess/API/efl/ewk_cookie_manager.h: Fix "accept policy" documentation to indicate that only cookies set by the main document are accepted by default. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp: Added. (EWK2UnitTestServer::EWK2UnitTestServer): Add HTTP server similar to the one used by GTK port unit tests. (EWK2UnitTestServer::~EWK2UnitTestServer): (EWK2UnitTestServer::run): (EWK2UnitTestServer::getURIForPath): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h: Added. (EWK2UnitTestServer): (EWK2UnitTestServer::baseURI): * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp: Added. (serverCallback): (getAcceptPolicyCallback): (getAcceptPolicy): (getHostnamesWithCookiesCallback): (getHostnamesWithCookies): (freeHostNames): (countHostnamesWithCookies): (TEST_F): (cleanUpCookieFiles): 2012-07-23 Pierre Rossi [Qt] Enable touch slider when touch events are enabled https://bugs.webkit.org/show_bug.cgi?id=91013 Reviewed by Antonio Gomes. Take advantage of the logic introduced in r122286. * Target.pri: 2012-07-23 Pierre Rossi Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client https://bugs.webkit.org/show_bug.cgi?id=91006 Reviewed by Ryosuke Niwa. Remove numTouchEventHandlersChanged stub. * WebProcess/WebCoreSupport/WebChromeClient.h: (WebChromeClient): 2012-07-23 Simon Fraser Part 1 of: Implement sticky positioning https://bugs.webkit.org/show_bug.cgi?id=90046 Reviewed by Ojan Vafai. Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially. Sort the ENABLE_CSS lines in the file. Make sure all the flags are in FEATURE_DEFINES. * Configurations/FeatureDefines.xcconfig: 2012-07-23 Christophe Dumez [EFL][WK2] Add request manager client https://bugs.webkit.org/show_bug.cgi?id=91193 Reviewed by Kenneth Rohde Christiansen. Add a URL request manager client and attach it to the Ewk_Context. The client application can now register a URL scheme via the Ewk_Context API and provide a callback handler that will get called whenever a URL request with this scheme is made. A new Ewk_Url_Scheme_Request type is introduced to provide information about the request to the client and to allow the client to finish it by setting its contents. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_context.cpp: (_Ewk_Url_Scheme_Handler): (_Ewk_Url_Scheme_Handler::_Ewk_Url_Scheme_Handler): (_Ewk_Context): (_Ewk_Context::_Ewk_Context): (ewk_context_request_manager_get): (ewk_context_url_scheme_request_received): (createDefaultEwkContext): (ewk_context_uri_scheme_register): * UIProcess/API/efl/ewk_context.h: * UIProcess/API/efl/ewk_context_private.h: * UIProcess/API/efl/ewk_context_request_manager_client.cpp: Added. (toEwkContext): (didReceiveURIRequest): (ewk_context_request_manager_client_attach): * UIProcess/API/efl/ewk_context_request_manager_client_private.h: Added. * UIProcess/API/efl/ewk_url_scheme_request.cpp: Added. (_Ewk_Url_Scheme_Request): (_Ewk_Url_Scheme_Request::_Ewk_Url_Scheme_Request): (_Ewk_Url_Scheme_Request::~_Ewk_Url_Scheme_Request): (ewk_url_scheme_request_ref): (ewk_url_scheme_request_unref): (ewk_url_scheme_request_scheme_get): (ewk_url_scheme_request_url_get): (ewk_url_scheme_request_path_get): (ewk_url_scheme_request_id_get): (ewk_url_scheme_request_finish): (ewk_url_scheme_request_new): * UIProcess/API/efl/ewk_url_scheme_request.h: Added. * UIProcess/API/efl/ewk_url_scheme_request_private.h: Added. 2012-07-23 KwangYong Choi [EFL][WK2] ProcessExecutablePath is required https://bugs.webkit.org/show_bug.cgi?id=89719 Reviewed by Kenneth Rohde Christiansen. Added executablePathOfWebProcess and executablePathOfPluginProcess. It's used for getting the location of WebProcess and PluginProcess. * PlatformEfl.cmake: Added LIBEXECDIR definition * Shared/efl/ProcessExecutablePathEfl.cpp: Added. (WebKit): (WebKit::findWebKitProcess): (WebKit::executablePathOfWebProcess): Get the absolute path of WebProcess (WebKit::executablePathOfPluginProcess): Get the absolute path of PluginProcess * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: (WebKit::ProcessLauncher::launchProcess): Modified to use above routines 2012-07-23 Christophe Dumez WebKit2 needs layoutTestController.setAlwaysAcceptCookies https://bugs.webkit.org/show_bug.cgi?id=42778 Reviewed by Kenneth Rohde Christiansen. Add setAlwaysAcceptCookies() method to InjectedBundle so that we can use it in LayoutTestController. The method uses WebCookieManager::setHTTPCookieAcceptPolicy() internally. * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleSetAlwaysAcceptCookies): * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::setAlwaysAcceptCookies): (WebKit): * WebProcess/InjectedBundle/InjectedBundle.h: (InjectedBundle): 2012-07-23 Thiago Marcos P. Santos [WK2] SQL Database cannot be disabled at build time https://bugs.webkit.org/show_bug.cgi?id=91837 Reviewed by Kenneth Rohde Christiansen. WebKit2 had no #ifdefs for SQL Database. This patch adds these statments and it can now be disabled at build time. * Shared/OriginAndDatabases.cpp: * Shared/OriginAndDatabases.h: * Shared/WebCoreArgumentCoders.cpp: (CoreIPC): * UIProcess/API/C/WKContext.cpp: (WKContextGetDatabaseManager): * UIProcess/API/C/WKDatabaseManager.cpp: (WKDatabaseManagerGetTypeID): (WKDatabaseManagerGetOriginKey): (WKDatabaseManagerGetOriginQuotaKey): (WKDatabaseManagerGetOriginUsageKey): (WKDatabaseManagerGetDatabaseDetailsKey): (WKDatabaseManagerGetDatabaseDetailsNameKey): (WKDatabaseManagerGetDatabaseDetailsDisplayNameKey): (WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey): (WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey): (WKDatabaseManagerSetClient): (WKDatabaseManagerGetDatabasesByOrigin): (callGetDatabasesByOriginBlockAndDispose): (WKDatabaseManagerGetDatabasesByOrigin_b): (WKDatabaseManagerGetDatabaseOrigins): (callGetDatabaseOriginsBlockBlockAndDispose): (WKDatabaseManagerGetDatabaseOrigins_b): (WKDatabaseManagerDeleteDatabasesWithNameForOrigin): (WKDatabaseManagerDeleteDatabasesForOrigin): (WKDatabaseManagerDeleteAllDatabases): (WKDatabaseManagerSetQuotaForOrigin): * UIProcess/WebContext.cpp: (WebKit::WebContext::WebContext): (WebKit::WebContext::~WebContext): (WebKit::WebContext::shouldTerminate): (WebKit::WebContext::disconnectProcess): (WebKit::WebContext::didReceiveMessage): * UIProcess/WebContext.h: (WebContext): * UIProcess/WebDatabaseManagerProxy.cpp: * UIProcess/WebDatabaseManagerProxy.h: * UIProcess/WebDatabaseManagerProxy.messages.in: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::clearAllDatabases): (WebKit::InjectedBundle::setDatabaseQuota): * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: * WebProcess/WebCoreSupport/WebDatabaseManager.h: * WebProcess/WebCoreSupport/WebDatabaseManager.messages.in: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didReceiveMessage): 2012-07-23 Kent Tamura Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively https://bugs.webkit.org/show_bug.cgi?id=91941 Reviewed by Kentaro Hara. A flag name for an elmement should be ENABLE_*_ELEMENT. * Configurations/FeatureDefines.xcconfig: 2012-07-22 Kent Tamura Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT https://bugs.webkit.org/show_bug.cgi?id=91928 Reviewed by Kentaro Hara. A flag name for an elmement should be ENABLE_*_ELEMENT. * Configurations/FeatureDefines.xcconfig: 2012-07-20 Kent Tamura Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT https://bugs.webkit.org/show_bug.cgi?id=91846 Reviewed by Kentaro Hara. A flag name for an elmement should be ENABLE_*_ELEMENT. * Configurations/FeatureDefines.xcconfig: 2012-07-20 Rafael Brandao QtNetworkAccessManager should not rely on signal sslErrors when QT_NO_SSL is defined https://bugs.webkit.org/show_bug.cgi?id=91866 Reviewed by Noam Rosenthal. * WebProcess/qt/QtNetworkAccessManager.cpp: (WebKit::QtNetworkAccessManager::QtNetworkAccessManager): QNAM's signal is only defined when that flag is undefined. Removed the connection when we have the flag set. (WebKit::QtNetworkAccessManager::onSslErrors): When the flag is set, this slot becomes unused. 2012-07-20 Christophe Dumez [EFL] Proxy configuration should honor the no_proxy environment variable https://bugs.webkit.org/show_bug.cgi?id=91747 Reviewed by Kenneth Rohde Christiansen. Use the new custom proxy resolver from WebCore in WebKit2-EFL so that it is possible for the client to set proxy exceptions via the "no_proxy" environment variable. By default, the proxy set in the "http_proxy" environment variable will not be used for requests to localhost or 127.0.0.1. * WebProcess/efl/WebProcessMainEfl.cpp: (WebKit::WebProcessMainEfl): 2012-06-01 Dinu Jacob [Qt][WK2] Add support for multi-select list https://bugs.webkit.org/show_bug.cgi?id=85527 Reviewed by Kenneth Rohde Christiansen. Added support for multi-select list: - Added multi-selection flag to PlatformPopupMenuData to indicate whether to accept multiple selections or not. - Added selected state to WebPopupItem. - Modified WebPopupMenuQt to support multiple selections. * Shared/PlatformPopupMenuData.cpp: (WebKit::PlatformPopupMenuData::PlatformPopupMenuData): (WebKit::PlatformPopupMenuData::encode): (WebKit::PlatformPopupMenuData::decode): * Shared/PlatformPopupMenuData.h: (PlatformPopupMenuData): * Shared/WebPopupItem.cpp: (WebKit::WebPopupItem::WebPopupItem): (WebKit::WebPopupItem::encode): (WebKit::WebPopupItem::decode): * Shared/WebPopupItem.h: * UIProcess/API/qt/tests/qmltests/WebView/tst_multiSelect.qml: Added. * UIProcess/API/qt/tests/qmltests/common/multiselect.html: Added. * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/WebPopupMenuProxy.h: (Client): * UIProcess/qt/WebPageProxyQt.cpp: (WebKit::WebPageProxy::changeSelectedIndex): (WebKit): (WebKit::WebPageProxy::closePopupMenu): * UIProcess/qt/WebPopupMenuProxyQt.cpp: (WebKit::PopupMenuItemModel::multiple): (PopupMenuItemModel): (WebKit::PopupMenuItemModel::Item::Item): (ItemSelectorContextObject): (WebKit::ItemSelectorContextObject::allowMultiSelect): (WebKit::ItemSelectorContextObject::reject): (WebKit::ItemSelectorContextObject::dismiss): (WebKit::ItemSelectorContextObject::ItemSelectorContextObject): (WebKit): (WebKit::ItemSelectorContextObject::onIndexUpdate): (WebKit::ItemSelectorContextObject::accept): (WebKit::PopupMenuItemModel::PopupMenuItemModel): (WebKit::PopupMenuItemModel::select): (WebKit::PopupMenuItemModel::toggleItem): (WebKit::PopupMenuItemModel::buildItems): (WebKit::WebPopupMenuProxyQt::showPopupMenu): (WebKit::WebPopupMenuProxyQt::hidePopupMenu): (WebKit::WebPopupMenuProxyQt::selectIndex): (WebKit::WebPopupMenuProxyQt::createItem): * UIProcess/qt/WebPopupMenuProxyQt.h: (WebPopupMenuProxyQt): * WebProcess/WebCoreSupport/WebPopupMenu.cpp: (WebKit::WebPopupMenu::didChangeSelectedIndex): (WebKit::WebPopupMenu::populateItems): * WebProcess/WebCoreSupport/WebPopupMenu.h: (WebPopupMenu): * WebProcess/WebCoreSupport/qt/WebPopupMenuQt.cpp: (WebKit::WebPopupMenu::setUpPlatformData): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelectedIndexForActivePopupMenu): (WebKit): (WebKit::WebPage::changeSelectedIndex): * WebProcess/WebPage/WebPage.h: (WebPage): * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/qt/WebPageQt.cpp: (WebKit::WebPage::selectedIndex): (WebKit): (WebKit::WebPage::hidePopupMenu): 2012-07-20 Gyuyoung Kim Unreviewed, rolling out r123085. http://trac.webkit.org/changeset/123085 https://bugs.webkit.org/show_bug.cgi?id=91719 r123085 causes crashes on EFL layout test bot. * UIProcess/efl/WebContextEfl.cpp: (WebKit::WebContext::applicationCacheDirectory): 2012-07-20 Christophe Dumez [EFL][WK2] Use "load,finished" signal in EWK2UnitTestBase::loadUrlSync() instead of "load,progress" https://bugs.webkit.org/show_bug.cgi?id=91721 Reviewed by Kenneth Rohde Christiansen. The purpose of EWK2UnitTestBase::loadUrlSync() is to load a URL in the view and wait synchronously for the load to finish. The current implementation uses the "load,progress" signal to detect when the load is finished, which is inefficient because it gets emitted several times. It is better to wait for the "load,finished" signal which gets emitted only once when the load is complete. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: (EWK2UnitTest::onLoadFinished): (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase): (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h: (EWK2UnitTestBase): 2012-07-19 MORITA Hajime [Refactoring] Replace Node's Document pointer with a TreeScope pointer https://bugs.webkit.org/show_bug.cgi?id=59816 Reviewed by Ryosuke Niwa. * win/WebKit2.def: Added newly exported symbols. * win/WebKit2CFLite.def: Ditto. 2012-07-19 Sudarsana Nagineni [EFL] [WK2] Add methods to get/set a custom text encoding https://bugs.webkit.org/show_bug.cgi?id=90604 Reviewed by Kenneth Rohde Christiansen. Add methods to get/set custom character encoding. * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (_ewk_view_priv_del): (ewk_view_setting_encoding_custom_get): (ewk_view_setting_encoding_custom_set): * UIProcess/API/efl/ewk_view.h: 2012-07-19 Gyuyoung Kim Unreviewed. Fix build break because of changing parameter type of vibration virtual function on EFL port. * WebProcess/WebCoreSupport/WebVibrationClient.cpp: (WebKit::WebVibrationClient::vibrate): * WebProcess/WebCoreSupport/WebVibrationClient.h: (WebVibrationClient): 2012-07-19 Sudarsana Nagineni [WK2] Add Vibration API integration to WebContext and WebPage https://bugs.webkit.org/show_bug.cgi?id=91081 Reviewed by Anders Carlsson. Integrate Vibration API to WebPage, WebContext and properly route messages to the WebVibrationProxy. * UIProcess/API/C/WKContext.cpp: (WKContextGetVibration): * UIProcess/API/C/WKContext.h: * UIProcess/WebContext.cpp: (WebKit::WebContext::WebContext): (WebKit::WebContext::~WebContext): (WebKit::WebContext::disconnectProcess): (WebKit::WebContext::didReceiveMessage): * UIProcess/WebContext.h: (WebKit): (WebContext): (WebKit::WebContext::vibrationProxy): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didReceiveMessage): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): 2012-07-19 No'am Rosenthal [Qt] Enable CSS shaders in Qt (software mode) https://bugs.webkit.org/show_bug.cgi?id=85140 Reviewed by Simon Hausmann. Add CSSCustomFilterEnabled to QWebPreferences. It's disabled by default. * UIProcess/API/qt/qwebpreferences.cpp: (QWebPreferencesPrivate::testAttribute): (QWebPreferencesPrivate::setAttribute): * UIProcess/API/qt/qwebpreferences_p_p.h: 2012-07-19 No'am Rosenthal [Qt] Enable CSS shaders in Qt (software mode) https://bugs.webkit.org/show_bug.cgi?id=85140 Reviewed by Simon Hausmann. Add CSSCustomFilterEnabled to QWebPreferences. It's disabled by default. * UIProcess/API/qt/qwebpreferences.cpp: (QWebPreferencesPrivate::testAttribute): (QWebPreferencesPrivate::setAttribute): * UIProcess/API/qt/qwebpreferences_p_p.h: 2012-07-19 Pierre Rossi [Qt][WK2] Map the elementRect exposed in QML to the view for popup menu https://bugs.webkit.org/show_bug.cgi?id=91645 Reviewed by Simon Hausmann. This way the geometry of the QML item is still sensible even if we panned and zoomed. * UIProcess/qt/WebPopupMenuProxyQt.cpp: (ItemSelectorContextObject): (WebKit::ItemSelectorContextObject::elementRect): (WebKit::ItemSelectorContextObject::ItemSelectorContextObject): (WebKit::WebPopupMenuProxyQt::showPopupMenu): 2012-07-19 Zoltan Nyul [EFL][WK2] Using different cache directory for each WTR process https://bugs.webkit.org/show_bug.cgi?id=91719 Reviewed by Kenneth Rohde Christiansen. Make sure we return a valid application cache directory in WebContextEfl. * UIProcess/efl/WebContextEfl.cpp: (WebKit::WebContext::applicationCacheDirectory): 2012-07-18 Christophe Dumez [EFL][WK2] EFL should use DownloadSoup instead of defining DownloadEfl https://bugs.webkit.org/show_bug.cgi?id=91602 Reviewed by Kenneth Rohde Christiansen. Reuse WebProcess/Downloads/soup/DownloadSoup.cpp in EFL port instead of redefining our own DownloadEfl.cpp. The EFL port is also using libsoup so it is best to avoid code duplication. * GNUmakefile.am: * GNUmakefile.list.am: * PlatformEfl.cmake: * WebProcess/Downloads/Download.h: (WebKit): (Download): * WebProcess/Downloads/efl/DownloadEfl.cpp: Removed. * WebProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp: Added. (WebKit): (WebKit::platformDownloadNetworkError): (WebKit::platformDownloadDestinationError): * WebProcess/Downloads/efl/FileDownloaderEfl.cpp: Removed. * WebProcess/Downloads/efl/FileDownloaderEfl.h: Removed. * WebProcess/Downloads/gtk/DownloadSoupErrorsGtk.cpp: Added. (WebKit): (WebKit::platformDownloadNetworkError): (WebKit::platformDownloadDestinationError): * WebProcess/Downloads/soup/DownloadSoup.cpp: Make the code compile for other ports than GTK. (WebKit::DownloadClient::didReceiveResponse): (WebKit::DownloadClient::didReceiveData): (WebKit::DownloadClient::didFail): (WebKit::Download::continueWithoutCredential): (WebKit): (WebKit::Download::useCredential): (WebKit::Download::cancelAuthenticationChallenge): * WebProcess/Downloads/soup/DownloadSoupErrors.h: Added. (WebKit): 2012-07-18 Christophe Dumez [WK2] Add C API for Network Information API https://bugs.webkit.org/show_bug.cgi?id=90762 Reviewed by Kenneth Rohde Christiansen. Add C API for WKNetworkInfo and WKNetworkInfoManager so that they can be used by the client. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * UIProcess/API/C/WKContext.cpp: (WKContextGetNetworkInfoManager): * UIProcess/API/C/WKContext.h: * UIProcess/API/C/WKNetworkInfo.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKNetworkInfoManager.cpp. (WKNetworkInfoGetTypeID): (WKNetworkInfoCreate): * UIProcess/API/C/WKNetworkInfo.h: Copied from Source/WebKit2/UIProcess/API/C/WKNetworkInfoManager.cpp. * UIProcess/API/C/WKNetworkInfoManager.cpp: (WKNetworkInfoManagerSetProvider): (WKNetworkInfoManagerProviderDidChangeNetworkInformation): * UIProcess/API/C/WKNetworkInfoManager.h: 2012-07-18 Christophe Dumez [EFL][WK2] ewk_cookie_manager_persistent_storage_set is not exported https://bugs.webkit.org/show_bug.cgi?id=91647 Reviewed by Gustavo Noronha Silva. Properly export ewk_cookie_manager_persistent_storage_set in ewk_cookie_manager.h by using EAPI. * UIProcess/API/efl/ewk_cookie_manager.h: 2012-07-18 Christophe Dumez [EFL] Add central error management to EFL port https://bugs.webkit.org/show_bug.cgi?id=91598 Reviewed by Kenneth Rohde Christiansen. Make use of ErrorsEfl header from WebCore in WebKit2, for Ewk_Web_Error and WebErrorsEfl. * UIProcess/API/efl/ewk_web_error.cpp: (ewk_web_error_type_get): * UIProcess/API/efl/ewk_web_error.h: * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp: (WebKit::cancelledError): (WebKit::blockedError): (WebKit::cannotShowURLError): (WebKit::interruptedForPolicyChangeError): (WebKit::cannotShowMIMETypeError): (WebKit::fileDoesNotExistError): (WebKit::pluginWillHandleLoadError): 2012-07-18 Thiago Marcos P. Santos [EFL] Set a theme for EFL WebKit2 unit test fixture https://bugs.webkit.org/show_bug.cgi?id=91618 Reviewed by Kenneth Rohde Christiansen. The test fixture should load the theme generated by the build instead of trying to load the system theme. * PlatformEfl.cmake: * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: (EWK2UnitTest::EWK2UnitTestBase::SetUp): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp: (EWK2UnitTest::EWK2UnitTestEnvironment::defaultTheme): (EWK2UnitTest): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h: (EWK2UnitTestEnvironment): 2012-07-18 Pierre Rossi [Qt] QQuickWebView shouldn't recieve mouse events while dialogs are active https://bugs.webkit.org/show_bug.cgi?id=91634 Reviewed by Alexis Menard. One side-effect of reimplementing childMouseEventFilter() in r122438 is that it can end up bypassing the mouseArea mechanism used in QML dialogs and still forward some mouse events over to the web process. We can rely on the same m_dialogActive mechanism already used for touch events in there as well. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebView::childMouseEventFilter): ignore events and return early if a dialog is active. 2012-07-18 Pierre Rossi [Qt] Build fix for ENABLE_TOUCH_EVENTS=0 Rubber-stamped by No'am Rosenthal. Add the appropriate ENABLE(TOUCH_EVENTS) where they're needed. * UIProcess/API/qt/raw/qrawwebview.cpp: * UIProcess/API/qt/raw/qrawwebview_p.h: include Platform.h so we can use the ENABLE macro. * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp: Also add the missing QFile include. * UIProcess/qt/QtWebPageEventHandler.cpp: (WebKit::QtWebPageEventHandler::deactivateTapHighlight): 2012-07-18 Christophe Dumez [EFL][WK2] Add Ewk class for cookie manager https://bugs.webkit.org/show_bug.cgi?id=91053 Reviewed by Gustavo Noronha Silva. Add new Ewk_Cookie_Manager class to allow the client to set/get the cookie acceptance policy, support persistent cookie storage and clear cookies. The Ewk_Cookie_Manager instance can be retrieved from the Ewk_Context API. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_context.cpp: (_Ewk_Context): (_Ewk_Context::_Ewk_Context): (_Ewk_Context::~_Ewk_Context): (ewk_context_cookie_manager_get): * UIProcess/API/efl/ewk_context.h: * UIProcess/API/efl/ewk_cookie_manager.cpp: Added. (_Ewk_Cookie_Manager): (_Ewk_Cookie_Manager::_Ewk_Cookie_Manager): (ewk_cookie_manager_persistent_storage_set): (ewk_cookie_manager_accept_policy_set): (Get_Policy_Async_Data): (getAcceptPolicyCallback): (ewk_cookie_manager_async_accept_policy_get): (Get_Hostnames_Async_Data): (getHostnamesWithCookiesCallback): (ewk_cookie_manager_async_hostnames_with_cookies_get): (ewk_cookie_manager_hostname_cookies_clear): (ewk_cookie_manager_cookies_clear): (ewk_cookie_manager_free): (ewk_cookie_manager_new): * UIProcess/API/efl/ewk_cookie_manager.h: Added. * UIProcess/API/efl/ewk_cookie_manager_private.h: Added. 2012-07-18 Carlos Garcia Campos [GTK] Add WebKitWebView::submit-form signal to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=91605 Reviewed by Gustavo Noronha Silva. The signal is emitted when a form is about to submitted, with a form submission request that can be used to get the text fields and to continue the form submission wheh done. * GNUmakefile.list.am: Add new files to compilation. * UIProcess/API/gtk/WebKitFormClient.cpp: Added. (willSubmitForm): Create a WebKitFormSubmissionRequest and call webkitWebViewSubmitFormRequest() with the request. (attachFormClientToView): Add impementation for willSubmitForm callback. * UIProcess/API/gtk/WebKitFormClient.h: Added. * UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp: Added. (webkit_form_submission_request_init): (webkitFormSubmissionRequestFinalize): (webkit_form_submission_request_class_init): (webkitFormSubmissionRequestCreate): Create a new WebKitFormSubmissionRequest for the given values dictionary and submission listener. (webkit_form_submission_request_get_text_fields): Create a GHashTable with the text fields values and return it. (webkit_form_submission_request_submit): Continue the form submission. * UIProcess/API/gtk/WebKitFormSubmissionRequest.h: Added. * UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h: Added. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewConstructed): Attach web view to form client. (webkit_web_view_class_init): Add WebKitWebView::submit-form signal. (webkitWebViewSubmitFormRequest): Emit WebKitWebView::submit-form signal. * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/WebKitWebViewPrivate.h: * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for WebKitFormSubmissionRequest. * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols. * UIProcess/API/gtk/tests/TestWebKitWebView.cpp: (testWebViewSubmitForm): (beforeAll): * UIProcess/API/gtk/webkit2.h: Include WebKitFormSubmissionRequest.h. 2012-07-18 Carlos Garcia Campos [GTK] No main resource in WebView when page has been loaded from history cache https://bugs.webkit.org/show_bug.cgi?id=91478 Reviewed by Gustavo Noronha Silva. We are assuming that a resource loaded for the main frame that is provisionally loading is the main resource of the web view. However that's not true for pages loaded from history cache, so when you go back/forward webkit_web_view_get_main_resource() always returns NULL. We can assume that the first resource loaded for the main frame is the main resource of the web view when pageIsProvisionallyLoading is false. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewResourceLoadStarted): Make sure we always have a main resource for the web view. * UIProcess/API/gtk/tests/TestResources.cpp: (testWebViewResourcesHistoryCache): Test we always have a main resource even after going back/forward. (beforeAll): Add new test case. 2012-07-18 Seokju Kwon [EFL] Rename WebInspectorEfl.cpp as WebInspectorProxyEfl.cpp https://bugs.webkit.org/show_bug.cgi?id=91585 Reviewed by Andreas Kling. Rename WebInspectorEfl.cpp as WebInspectorProxyEfl.cpp since it implements the platform specific methods of WebInspectorProxy. * PlatformEfl.cmake: * UIProcess/efl/WebInspectorProxyEfl.cpp: Renamed from Source/WebKit2/UIProcess/efl/WebInspectorEfl.cpp. (WebKit): (WebKit::WebInspectorProxy::platformCreateInspectorPage): (WebKit::WebInspectorProxy::platformOpen): (WebKit::WebInspectorProxy::platformDidClose): (WebKit::WebInspectorProxy::platformBringToFront): (WebKit::WebInspectorProxy::platformIsFront): (WebKit::WebInspectorProxy::platformInspectedURLChanged): (WebKit::WebInspectorProxy::inspectorPageURL): (WebKit::WebInspectorProxy::inspectorBaseURL): (WebKit::WebInspectorProxy::platformInspectedWindowHeight): (WebKit::WebInspectorProxy::platformAttach): (WebKit::WebInspectorProxy::platformDetach): (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight): 2012-07-18 Zoltan Horvath [Qt] Modify the using of the QImage::Format enum to the appropriate functions from NativeImageQt https://bugs.webkit.org/show_bug.cgi?id=91600 Reviewed by Andreas Kling. Use NativeImageQt::defaultFormatForAlphaEnabledImages() and NativeImageQt::defaultFormatForOpaqueImages() instead of the direct imagetypes at the appropriate places. * Shared/qt/ShareableBitmapQt.cpp: (WebKit::ShareableBitmap::createQImage): 2012-07-18 Zeno Albisser [Qt][WK2] Caching of ShareableSurfaces breaks tiling. https://bugs.webkit.org/show_bug.cgi?id=91609 A ShareableSurface should only be cached, when it is GraphicsSurface based. Reviewed by Kenneth Rohde Christiansen. * UIProcess/LayerTreeCoordinatorProxy.cpp: (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer): * UIProcess/LayerTreeCoordinatorProxy.h: (LayerTreeCoordinatorProxy): 2012-07-18 Carlos Garcia Campos [GTK] Fix a crash due to an invalid assert https://bugs.webkit.org/show_bug.cgi?id=91614 Reviewed by Xan Lopez. In webkitWebViewBaseContainerAdd() there's ASSERT(priv->inspectorView); that should be the opposite, since we shoulnd't have an inspector view when the inspector view is added. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseContainerAdd): 2012-07-18 Thiago Marcos P. Santos [CMake] Make gtest a shared library https://bugs.webkit.org/show_bug.cgi?id=90973 Reviewed by Daniel Bates. No need to link with gtest dependencies now since it is a shared library. * PlatformEfl.cmake: 2012-07-18 YoungTaeck Song [WK2][EFL] Add a common code using Color instead of QColor https://bugs.webkit.org/show_bug.cgi?id=91580 Reviewed by Simon Hausmann. This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation. drawBorder's argument is QColor. So add a common code using Color to be used by Efl. * UIProcess/texmap/LayerBackingStore.cpp: (WebKit::LayerBackingStore::paintToTextureMapper): 2012-07-17 Christophe Dumez [EFL] Replace 0 by NULL in public headers documentation https://bugs.webkit.org/show_bug.cgi?id=91470 Reviewed by Dirk Pranke. Use NULL instead of 0 for pointer types in public C headers. * UIProcess/API/efl/ewk_intent.h: * UIProcess/API/efl/ewk_intent_service.h: * UIProcess/API/efl/ewk_url_request.h: * UIProcess/API/efl/ewk_url_response.h: * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_web_resource.h: 2012-07-17 Carlos Garcia Campos [GTK] Don't use deprecated soup API in WebKit2APITests/TestResources https://bugs.webkit.org/show_bug.cgi?id=91496 Reviewed by Martin Robinson. soup_message_headers_get() is deprecated, use soup_message_headers_get_one() instead. * UIProcess/API/gtk/tests/TestResources.cpp: (serverCallback): 2012-07-17 Carlos Garcia Campos [GTK] Fix a typo in WebKit2APITests/TestResources https://bugs.webkit.org/show_bug.cgi?id=91495 Reviewed by Xan Lopez. * UIProcess/API/gtk/tests/TestResources.cpp: (testWebResourceLoading): (testWebResourceResponse): (testWebResourceMimeType): (testWebResourceActiveURI): 2012-07-17 Vivek Galatage Web Inspector: refactor InspectorController::connectFrontend() to accept InspectorFrontendChannel. https://bugs.webkit.org/show_bug.cgi?id=91196 Reviewed by Pavel Feldman. Refactoring InspectorClients. InspectorClient::openInspectorFrontend now returning the InspectorFrontendChannel. * WebProcess/WebCoreSupport/WebInspectorClient.cpp: (WebKit::WebInspectorClient::openInspectorFrontend): * WebProcess/WebCoreSupport/WebInspectorClient.h: (WebInspectorClient): 2012-07-17 Carlos Garcia Campos [GTK] Paste primary selection when middle clicking in X11 WebKit2 https://bugs.webkit.org/show_bug.cgi?id=91411 Reviewed by Xan Lopez. Handle middle click events to paste primary selection as expected in any X11 application. * WebProcess/WebPage/WebPage.cpp: (WebKit::handleMouseEvent): Call handleMousePressedEvent() for GTK+ platform. * WebProcess/WebPage/WebPage.h: (WebPage): Add handleMousePressedEvent() for GTK+ platform. * WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::handleMousePressedEvent): Handle middle click events to paste primary selection like we do in WebKit1. 2012-07-17 Ryuan Choi [EFL] Move codes related to theme setting from Widget to RenderTheme https://bugs.webkit.org/show_bug.cgi?id=89842 Reviewed by Kenneth Rohde Christiansen. * CMakeLists.txt: Added html/shadow to WebKit_INCLUDE_DIRECTORIES. * WebProcess/WebPage/efl/WebPageEfl.cpp: (WebKit::WebPage::setThemePath): Called RenderThemeEfl::setThemePath instead of setting theme in FrameView. 2012-07-17 David Barr Introduce ENABLE_CSS_IMAGE_ORIENTATION compile flag https://bugs.webkit.org/show_bug.cgi?id=89055 Reviewed by Kent Tamura. The css3-images module is at candidate recommendation. http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation Add a configuration option for CSS image-orientation support, disabling it by default. * Configurations/FeatureDefines.xcconfig: 2012-07-16 Gyuyoung Kim Add RegisterProtocolHandlerClient to the Modules/protocolhandler https://bugs.webkit.org/show_bug.cgi?id=90940 Reviewed by Hajime Morita. As a step to let protocol handler be moved to the modules, RegisterProtocolHandlerClient needs to be added to the Modules/protocolhandler. Because ChromeClient has some virtual functions for protocol handlers, virtual functions should be moved to RegisterProtocolHandlerClient. In order to support this, WebRegisterProtocolHandlerClient class is added. However, this is not implemented yet. In addition, existing virtual functions in WebChromeClient are moved to WebRegisterProtocolHandlerClient. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.h: Added. (WebKit): (WebRegisterProtoclHandlerClient): (WebKit::WebRegisterProtoclHandlerClient::isProtocolHandlerRegistered): (WebKit::WebRegisterProtoclHandlerClient::unregisterProtocolHandler): 2012-07-16 Pete Williamson Export the iconURL list to make it available to the Internals class for testing https://bugs.webkit.org/show_bug.cgi?id=88665 Reviewed by Kent Tamura. * win/WebKit2.def: export the DocumentL::iconURLs function 2012-07-16 Hajime Morrita WebCore needs WEBCORE_TESTING macro to mark methods being exported for testing. https://bugs.webkit.org/show_bug.cgi?id=90764 Reviewed by Adam Barth. Removed symbols which are now covered by WEBCORE_TESTING. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-07-16 Christophe Dumez [EFL][WK2] Implement decidePolicyForResponse in policy client https://bugs.webkit.org/show_bug.cgi?id=91401 Reviewed by Kenneth Rohde Christiansen. Provide implementation for decidePolicyForResponse callback in WebKit2 EFL's policy client. * UIProcess/API/efl/ewk_view_policy_client.cpp: (decidePolicyForResponseCallback): (ewk_view_policy_client_attach): 2012-07-16 Ryuan Choi [EFL][WK2] Add APIs to support theme. https://bugs.webkit.org/show_bug.cgi?id=90107 Reviewed by Hajime Morita. RenderThemeEfl uses edj file to render native theme of form elements. This patch provides default theme and a way to change edj theme file for WebKit2/Efl. * PlatformEfl.cmake: * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (ewk_view_base_add): (ewk_view_theme_set): (ewk_view_theme_get): * UIProcess/API/efl/ewk_view.h: * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/efl/WebPageProxyEfl.cpp: (WebKit::WebPageProxy::setThemePath): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/efl/WebPageEfl.cpp: (WebKit::WebPage::setThemePath): 2012-07-16 Kihong Kwon Remove setController from BatteryClient https://bugs.webkit.org/show_bug.cgi?id=90944 Reviewed by Adam Barth. Remove WebBatteryClient::setController function. * WebProcess/WebCoreSupport/WebBatteryClient.cpp: * WebProcess/WebCoreSupport/WebBatteryClient.h: (WebBatteryClient): 2012-07-16 Christophe Dumez [EFL][WK2] Make Ewk_Navigation_Policy_Decision ref counted https://bugs.webkit.org/show_bug.cgi?id=91343 Reviewed by Antonio Gomes. Make Ewk_Navigation_Policy_Decision ref counted so that the client can make navigation policy decisions asynchronously by ref'ing the Ewk_Navigation_Policy_Decision object passed with the "policy,*" signals. * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: (_Ewk_Navigation_Policy_Decision): (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision): (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision): (ewk_navigation_policy_decision_ref): (ewk_navigation_policy_decision_unref): * UIProcess/API/efl/ewk_navigation_policy_decision.h: * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_policy_client.cpp: (decidePolicyForNavigationAction): (decidePolicyForNewWindowAction): 2012-07-16 Zoltan Horvath [Qt] Change NativeImagePtr from QPixmap* to QImage* https://bugs.webkit.org/show_bug.cgi?id=88785 Reviewed by Simon Hausmann. Since we use raster engine there is no difference between QPixmap and QImage, so we are going to use QImage everywhere where it is possible. This refactoring contains the change of the NativeImagePtr typedef from QPixmap* to QImage* and covers the related modifications. Part of the change is similar to Viatcheslav Ostapenko's internal work. Covered by existing tests. * Shared/qt/ShareableBitmapQt.cpp: (WebKit::ShareableBitmap::createImage): * UIProcess/qt/QtWebIconDatabaseClient.cpp: (WebKit::QtWebIconDatabaseClient::iconImageForPageURL): * WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp: (WebKit::convertQImageToShareableBitmap): (WebKit::WebDragClient::startDrag): * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp: (WebKit::LayerTreeCoordinator::adoptImageBackingStore): 2012-07-16 Carlos Garcia Campos Unreviewed. Fix make distcheck. * UIProcess/API/gtk/tests/GNUmakefile.am: Add test resources to EXTRA_DIST. 2012-07-15 Christophe Dumez [EFL][WK2] Define destructors for Ewk structures https://bugs.webkit.org/show_bug.cgi?id=91338 Reviewed by Kentaro Hara. Add destructors to Ewk structures and move memory freeing code from *_free() or *_unref() functions to the destructors. * UIProcess/API/efl/ewk_intent.cpp: (_Ewk_Intent::_Ewk_Intent): (_Ewk_Intent): (_Ewk_Intent::~_Ewk_Intent): (ewk_intent_unref): * UIProcess/API/efl/ewk_intent_service.cpp: (_Ewk_Intent_Service): (_Ewk_Intent_Service::~_Ewk_Intent_Service): (ewk_intent_service_unref): * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: (_Ewk_Navigation_Policy_Decision): (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision): (ewk_navigation_policy_decision_free): * UIProcess/API/efl/ewk_url_request.cpp: (_Ewk_Url_Request): (_Ewk_Url_Request::~_Ewk_Url_Request): (ewk_url_request_unref): * UIProcess/API/efl/ewk_url_response.cpp: (_Ewk_Url_Response): (_Ewk_Url_Response::~_Ewk_Url_Response): (ewk_url_response_unref): * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (_Ewk_View_Private_Data::~_Ewk_View_Private_Data): (_ewk_view_priv_del): * UIProcess/API/efl/ewk_web_error.cpp: (_Ewk_Web_Error): (_Ewk_Web_Error::~_Ewk_Web_Error): (ewk_web_error_free): * UIProcess/API/efl/ewk_web_resource.cpp: (_Ewk_Web_Resource): (_Ewk_Web_Resource::~_Ewk_Web_Resource): (ewk_web_resource_unref): 2012-07-14 Eric Carlson Enable AVCF hardware video decoding https://bugs.webkit.org/show_bug.cgi?id=90015 Reviewed by Anders Carlsson. * DerivedSources.make: Define HAVE_AVCF if necessary. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit): (WebKit::WebChromeClient::graphicsDeviceAdapter): New, return the layer tree host's graphics adapter. * WebProcess/WebCoreSupport/WebChromeClient.h: (WebChromeClient): * WebProcess/WebPage/LayerTreeHost.h: (WebCore): (LayerTreeHost): (WebKit::LayerTreeHost::graphicsDeviceAdapter): New, default implementation. * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h: (LayerTreeHostCAWin): 2012-07-13 Thiago Marcos P. Santos [CMake] Proper handling of ENABLE_API_TESTS build option https://bugs.webkit.org/show_bug.cgi?id=91221 Reviewed by Rob Buis. Build unit tests only if ENABLE_API_TESTS is set. * PlatformEfl.cmake: 2012-07-13 Christophe Dumez [EFL][WK2] Make new public Ewk headers as installable https://bugs.webkit.org/show_bug.cgi?id=91232 Reviewed by Antonio Gomes. Make new public Ewk headers installable. * PlatformEfl.cmake: 2012-07-13 Carlos Garcia Campos [GTK] Implement disk cache in WebKit2 https://bugs.webkit.org/show_bug.cgi?id=90797 Reviewed by Xan Lopez. * WebProcess/gtk/WebProcessGtk.cpp: (WebKit::getCacheDiskFreeSize): Use an ASSERT instead of an early return since the cache feature is now always added to the session. (WebKit::WebProcess::platformSetCacheModel): Get the cache from the session and set the maximum cache size as computed by calculateCacheSizes(). (WebKit::WebProcess::platformClearResourceCaches): Call soup_cache_clear(). (WebKit::WebProcess::platformTerminate): Make sure all pending data is saved to the disk before the web process finishes. * WebProcess/gtk/WebProcessMainGtk.cpp: (WebKit::WebProcessMainGtk): Create a SoupCache feature and add it to the default SoupSession. 2012-07-13 Carlos Garcia Campos [GTK] Fix disk cache size computation in WebKit2 https://bugs.webkit.org/show_bug.cgi?id=91226 Reviewed by Xan Lopez. We are passing the free disk space value in bytes to calculateCacheSizes() which expects values in MB. * WebProcess/gtk/WebProcessGtk.cpp: (WebKit::WebProcess::platformSetCacheModel): 2012-07-13 Carlos Garcia Campos [GTK] WebKit2 crash when going back/forward https://bugs.webkit.org/show_bug.cgi?id=91220 Reviewed by Xan Lopez. For some reason when a page is loaded from the backforward list, when the didCommitLoadForFrame callback is called for the main frame, the callback didInitiateLoadForResource hasn't been called yet, so we don't even have a main resource at that point. We were assuming we always had a main resource with a response. For now we just check whether we have a resource before trying to set the certificate to fix the crash, but we need to figue out why this is happening an how to properly fix it. * UIProcess/API/gtk/WebKitLoaderClient.cpp: (didCommitLoadForFrame): Check whether we have a main resource before setting the certificate. 2012-07-13 Christophe Dumez [EFL][WK2] Use eina stringsharing for Ewk_Web_Resource's url https://bugs.webkit.org/show_bug.cgi?id=91200 Reviewed by Kenneth Rohde Christiansen. Use eina stringsharing for Ewk_Web_Resource's url for consistency. * UIProcess/API/efl/ewk_web_resource.cpp: (_Ewk_Web_Resource): (_Ewk_Web_Resource::_Ewk_Web_Resource): (ewk_web_resource_unref): (ewk_web_resource_url_get): * UIProcess/API/efl/ewk_web_resource.h: 2012-07-13 Carlos Garcia Campos [GTK] WebKitWebView::mouse-target-changed is not emitted when moved to/from edtiable content https://bugs.webkit.org/show_bug.cgi?id=91216 Reviewed by Xan Lopez. The problem is that the function to check whether two hit test results are equal doesn't check the editable flag. * UIProcess/API/gtk/WebKitHitTestResult.cpp: (webkitHitTestResultCompare): Check also the editable flag. 2012-07-13 Gyuyoung Kim [EFL] Add *explicit* keyword to constructor which has a parameter https://bugs.webkit.org/show_bug.cgi?id=91207 Reviewed by Zoltan Herczeg. Add *explicit* keyword to contructor which has a parameter in order to avoid implicit type conversion. * WebProcess/WebCoreSupport/efl/WebFrameNetworkingContext.h: (WebFrameNetworkingContext::WebFrameNetworkingContext): 2012-07-13 Zeno Albisser [Qt][WK2] Implement GraphicsSurface for Linux/GLX. https://bugs.webkit.org/show_bug.cgi?id=90881 Add a GLX based GraphicsSurface implementation for Linux. Reviewed by Noam Rosenthal. * Shared/ShareableSurface.cpp: (WebKit::ShareableSurface::create): Only create a GraphicsSurface from a ShareableSurface::Handle in case the Handle contains a valid GraphicsSurface token. Otherwise fall back to creating a ShareableBitmap. * UIProcess/LayerTreeCoordinatorProxy.cpp: (WebKit::createLayerTileUniqueKey): Create a unique key for a surface based on tileID and layerID. (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer): Even when GraphicsSurface is enabled, not all ShareableSurfaces will necessarily be backed by a GraphicsSurface. In case of a ShareableSurface being backed by a ShareableBitmap instead, the GraphicsSurface token will always be null. So instead of using the GraphicsSurface token as a key for storing surfaces in a map, we create a unique key from layerID and tileID. * UIProcess/LayerTreeCoordinatorProxy.h: (LayerTreeCoordinatorProxy): 2012-07-12 Carlos Garcia Campos [GTK] Add API to get HTTPS status to WebKit2 GTK+ https://bugs.webkit.org/show_bug.cgi?id=91100 Reviewed by Martin Robinson. Add webkit_uri_response_get_https_status() to return GTlsCertificate and GTlsCertificateFlags with information about the SSL certificate and the possible errors with the certificate. * GNUmakefile.list.am: Add new files to compilation. * PlatformEfl.cmake: Ditto. * Shared/efl/PlatformCertificateInfo.h: Removed. * Shared/soup/PlatformCertificateInfo.cpp: Added. (WebKit::PlatformCertificateInfo::PlatformCertificateInfo): (WebKit::PlatformCertificateInfo::~PlatformCertificateInfo): (WebKit::PlatformCertificateInfo::encode): Encode the GTlsCertificate and GTlsCertificateFlags. (WebKit::PlatformCertificateInfo::decode): Decode PlatformCertificateInfo into a GTlsCertificate and GTlsCertificateFlags. * Shared/soup/PlatformCertificateInfo.h: Renamed from Source/WebKit2/Shared/gtk/PlatformCertificateInfo.h. (WebKit::PlatformCertificateInfo::certificate): Return the certificate. (WebKit::PlatformCertificateInfo::tlsErrors): Return the TLS errors * UIProcess/API/gtk/WebKitLoaderClient.cpp: (didCommitLoadForFrame): Set the certificate of the current frame to the response of the main resource. * UIProcess/API/gtk/WebKitURIResponse.cpp: (webkit_uri_response_get_https_status): Return GTlsCertificate and GTlsCertificateFlags. (webkitURIResponseSetCertificateInfo): Update the internal ResourceResponse with the GTlsCertificate and GTlsCertificateFlags of the given PlatformCertificateInfo. * UIProcess/API/gtk/WebKitURIResponse.h: * UIProcess/API/gtk/WebKitURIResponsePrivate.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol. * UIProcess/API/gtk/tests/GNUmakefile.am: * UIProcess/API/gtk/tests/TestMain.h: (Test::getResourcesDir): Helper function to get the resources directory of the WebKit2 API tests. * UIProcess/API/gtk/tests/TestSSL.cpp: Added. (testSSL): (serverCallback): (beforeAll): (afterAll): * UIProcess/API/gtk/tests/WebKitTestServer.cpp: (WebKitTestServer::WebKitTestServer): Add support por SSL test servers. * UIProcess/API/gtk/tests/WebKitTestServer.h: (WebKitTestServer): Add ssl parameter to create a HTTPS server. * UIProcess/API/gtk/tests/resources/test-cert.pem: Added. * UIProcess/API/gtk/tests/resources/test-key.pem: Added. 2012-07-12 Christophe Dumez [WK2][EFL] Facilitate debugging of the Web Process https://bugs.webkit.org/show_bug.cgi?id=90768 Reviewed by Kenneth Rohde Christiansen. The EFL port now checks if the WEB_PROCESS_CMD_PREFIX environment variable is set and uses it as prefix when spawning the Web process if it is. This is used for debugging purposes with prefixes such as: "xterm -title renderer -e gdb --args". * UIProcess/Launcher/ProcessLauncher.h: (LaunchOptions): * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::connect): 2012-07-12 Timothy Hatcher Make the "Inspect Element" context menu item appear in nightly builds again. https://webkit.org/b/89323 Reviewed by Anders Carlsson. * Shared/API/c/WKContextMenuItem.cpp: (compatibleContextMenuItemTag): Added. Checks for the specific version of Safari 6 that needs the tag fixed up to match values it expects. (WKContextMenuItemGetTag): On Mac platforms call compatibleContextMenuItemTag to fix up the tag before returning it. * Shared/API/c/WKContextMenuItemTypes.h: Fix the order of the WKContextMenuItemTag enum to be binary compatible with older versions of WebKit2. 2012-07-12 Thiago Marcos P. Santos [EFL] Port the test framework to WebKit 2 https://bugs.webkit.org/show_bug.cgi?id=90606 Reviewed by Kenneth Rohde Christiansen. This port of EFL's WebKit 1 test framework uses a more gtest-ish way of writing tests and it is based on a test fixture that loads a page synchronously as convenience (if needed). This base fixture can be easily extended by just inheriting from it. * PlatformEfl.cmake: * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added. (EWK2UnitTest): (EWK2UnitTest::onLoadProgress): (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase): (EWK2UnitTest::EWK2UnitTestBase::SetUp): (EWK2UnitTest::EWK2UnitTestBase::TearDown): (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h: Added. (EWK2UnitTest): (EWK2UnitTestBase): (EWK2UnitTest::EWK2UnitTestBase::setLoadProgress): (EWK2UnitTest::EWK2UnitTestBase::webView): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp: Added. (EWK2UnitTest): (EWK2UnitTest::EWK2UnitTestEnvironment::EWK2UnitTestEnvironment): (EWK2UnitTest::EWK2UnitTestEnvironment::defaultTestPageUrl): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h: Added. (EWK2UnitTest): (EWK2UnitTestEnvironment): (EWK2UnitTest::EWK2UnitTestEnvironment::useX11Window): (EWK2UnitTest::EWK2UnitTestEnvironment::defaultWidth): (EWK2UnitTest::EWK2UnitTestEnvironment::defaultHeight): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp: Added. (parseArguments): (main): * UIProcess/API/efl/tests/resources/default_test_page.html: Added. * UIProcess/API/efl/tests/test_ewk2_view.cpp: Added. (TEST_F): 2012-07-12 Christophe Dumez [WK2] Add missing Network Information API integration to WebContext and WebPage https://bugs.webkit.org/show_bug.cgi?id=90781 Reviewed by Anders Carlsson. Integrate Network Information API to WebPage, WebContext and properly route messages to the WebNetworkInfoManagerProxy. Without this, the Network Information tests are crashing for WebKit2. * UIProcess/WebContext.cpp: (WebKit::WebContext::WebContext): (WebKit::WebContext::~WebContext): (WebKit::WebContext::disconnectProcess): (WebKit::WebContext::didReceiveMessage): (WebKit::WebContext::didReceiveSyncMessage): * UIProcess/WebContext.h: (WebKit): (WebContext): (WebKit::WebContext::networkInfoManagerProxy): * UIProcess/WebNetworkInfoManagerProxy.cpp: (WebKit::WebNetworkInfoManagerProxy::didReceiveSyncMessage): (WebKit): * UIProcess/WebNetworkInfoManagerProxy.h: (WebNetworkInfoManagerProxy): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didReceiveMessage): (WebKit::WebProcessProxy::didReceiveSyncMessage): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): 2012-07-12 No'am Rosenthal Move TextureMapperAnimation and texmap/LayerTransform to platform/graphics https://bugs.webkit.org/show_bug.cgi?id=91111 Reviewed by Kenneth Rohde Christiansen. Include the new filenames. * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h: (WebGraphicsLayer): 2012-07-12 Adenilson Cavalcanti [Qt][WK2] Implement web notifications support https://bugs.webkit.org/show_bug.cgi?id=80702 Reviewed by Noam Rosenthal. Adding a new type of permission request for Desktop Notifications (plus required code to register the handle for this requests). * UIProcess/API/qt/qwebpermissionrequest.cpp: (QWebPermissionRequestPrivate::QWebPermissionRequestPrivate): (QWebPermissionRequestPrivate): (QWebPermissionRequest::create): (QWebPermissionRequest::QWebPermissionRequest): (QWebPermissionRequest::setAllow): * UIProcess/API/qt/qwebpermissionrequest_p.h: * UIProcess/API/qt/tests/qmltests/WebView/tst_notification.qml: Added. * UIProcess/API/qt/tests/qmltests/common/notification.html: Added. * UIProcess/qt/QtWebPageUIClient.cpp: (WebKit::QtWebPageUIClient::QtWebPageUIClient): (WebKit::QtWebPageUIClient::policyForNotificationPermissionRequest): (WebKit): * UIProcess/qt/QtWebPageUIClient.h: 2012-07-12 Sudarsana Nagineni [EFL][WK2] Browser crashes running BatteryStatus tests. https://bugs.webkit.org/show_bug.cgi?id=91065 Reviewed by Kentaro Hara. clientInfo was incorrectly casted to BatteryProviderEfl in helper function. This patch fixes the issue. * UIProcess/API/efl/BatteryProvider.cpp: (toBatteryProvider): 2012-07-12 Christophe Dumez [EFL] [WK2] regression(r122411) Crashes in Ewk_View https://bugs.webkit.org/show_bug.cgi?id=91068 Reviewed by Kentaro Hara. Avoid using calloc() to allocate memory for structures and use new operator instead. calloc() causes unwanted behavior when allocing a structure which contains non-pointer types (e.g. a HashMap) and leads to crashes. * UIProcess/API/efl/ewk_context.cpp: (_Ewk_Context::_Ewk_Context): * UIProcess/API/efl/ewk_intent.cpp: (_Ewk_Intent): (_Ewk_Intent::_Ewk_Intent): (ewk_intent_unref): (ewk_intent_new): * UIProcess/API/efl/ewk_intent_service.cpp: (_Ewk_Intent_Service): (_Ewk_Intent_Service::_Ewk_Intent_Service): (ewk_intent_service_unref): (ewk_intent_service_new): * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: (_Ewk_Navigation_Policy_Decision): (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision): (ewk_navigation_policy_decision_free): (ewk_navigation_policy_decision_new): * UIProcess/API/efl/ewk_url_request.cpp: (_Ewk_Url_Request): (_Ewk_Url_Request::_Ewk_Url_Request): (ewk_url_request_unref): (ewk_url_request_new): * UIProcess/API/efl/ewk_url_response.cpp: (_Ewk_Url_Response): (_Ewk_Url_Response::_Ewk_Url_Response): (ewk_url_response_unref): (ewk_url_response_new): * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (_Ewk_View_Private_Data::_Ewk_View_Private_Data): (_ewk_view_priv_new): (_ewk_view_priv_del): * UIProcess/API/efl/ewk_web_error.cpp: (_Ewk_Web_Error): (_Ewk_Web_Error::_Ewk_Web_Error): (ewk_web_error_free): (ewk_web_error_new): * UIProcess/API/efl/ewk_web_resource.cpp: (_Ewk_Web_Resource): (_Ewk_Web_Resource::_Ewk_Web_Resource): (ewk_web_resource_unref): (ewk_web_resource_new): 2012-07-11 Andras Becsi [Qt][WK2] ASSERT: "!m_viewportItem->isMoving()" in QtViewportHandler::flickMoveEnded() https://bugs.webkit.org/show_bug.cgi?id=90875 Reviewed by Kenneth Rohde Christiansen. Since MultiPointTouchArea and PinchArea use the childMouseEventFilter method to filter touch events and because Flickable filters child mouse events the canvas calls this function before propagating the touch event to the WebView. Since Flickable does not accept touch events the canvas tries to propagate a synthesized mouse event through the base class childMouseEventFilter function which is accepted by Flickable and interferes with the input events we send to Flicakble hence messes up the internal state of the WebView. This patch reimplements the virtual childMouseEventFilter method so that all the mouse and touch events can be processed by WebKit before they arrive to Flickable. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebView::childMouseEventFilter): * UIProcess/API/qt/qquickwebview_p.h: 2012-07-12 Carlos Garcia Campos Unreviewed. Fix GTK+ debug build after r122425. * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp: (webkitSoupCookieJarSqliteNew): 2012-07-12 Sergio Villar Senin [WK2] Performance issue in FindController::findString https://bugs.webkit.org/show_bug.cgi?id=78132 Reviewed by Anders Carlsson. FindController should not unmark all text matches by default. It will be done only if the string is not found or if markAllTextMatches() is called. This will allow clients to look for the next/previous without having to unmark() + mark() all the text matches for every single search operation. * UIProcess/API/gtk/WebKitFindController.cpp: (webKitFindControllerPerform): (webkit_find_controller_search_next): (webkit_find_controller_search_previous): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindUIAfterPageScroll): (WebKit::FindController::findString): 2012-07-12 Christophe Dumez [WK2][EFL] Add policy client to Ewk_View https://bugs.webkit.org/show_bug.cgi?id=90953 Reviewed by Kenneth Rohde Christiansen. Emit new "policy,decision,navigation" and "policy,decision,new,window" on the Ewk_View when policy decisions should be taken by the client. A new Ewk_Navigation_Policy_Decision type is introduced to provide information about the navigation request and make a decision. By default, the navigation request is accepted. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: Added. (_Ewk_Navigation_Policy_Decision): (ewk_navigation_policy_decision_free): (ewk_navigation_policy_navigation_type_get): (ewk_navigation_policy_mouse_button_get): (ewk_navigation_policy_modifiers_get): (ewk_navigation_policy_frame_name_get): (ewk_navigation_policy_request_get): (ewk_navigation_policy_decision_accept): (ewk_navigation_policy_decision_reject): (ewk_navigation_policy_decision_download): (ewk_navigation_policy_decision_new): * UIProcess/API/efl/ewk_navigation_policy_decision.h: Added. * UIProcess/API/efl/ewk_navigation_policy_decision_private.h: Added. * UIProcess/API/efl/ewk_private.h: Added. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_base_add): (ewk_view_navigation_policy_decision): (ewk_view_new_window_policy_decision): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_policy_client.cpp: Added. (toEwkView): (decidePolicyForNavigationAction): (decidePolicyForNewWindowAction): (ewk_view_policy_client_attach): * UIProcess/API/efl/ewk_view_policy_client_private.h: Added. * UIProcess/API/efl/ewk_view_private.h: 2012-07-11 Carlos Garcia Campos [GTK] Add webkit_cookie_manager_set_persistent_storage() to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=83016 Reviewed by Martin Robinson. Add a custom implementation of SoupCookieJarSqlite based on libsoup code but using WebCore SQLite classes. SoupCookieJarSqlite is part of libsoup-gnome, it's not a lot of code and it doesn't change often, so it's better to simply have our own implementation instead of making this important feature depend on an optional dependency. There are plans to move the implementation to libsoup, if that eventually happens we will remove our code to use libsoup directly. * GNUmakefile.am: Add new dirs to include path. * GNUmakefile.list.am: Add new files to compilation. * PlatformEfl.cmake: Ditto. * Shared/soup/SoupCookiePersistentStorageType.h: Added. * UIProcess/API/gtk/WebKitCookieManager.cpp: (webkit_cookie_manager_set_persistent_storage): Set a persistent storage for cookies. * UIProcess/API/gtk/WebKitCookieManager.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols * UIProcess/API/gtk/tests/TestCookieManager.cpp: (testCookieManagerPersistentStorage): (serverCallback): (beforeAll): (afterAll): * UIProcess/WebCookieManagerProxy.h: (WebCookieManagerProxy): Add setCookiePersistentStorage() method when using soup. * UIProcess/soup/WebCookieManagerProxySoup.cpp: Added. (WebKit::WebCookieManagerProxy::setCookiePersistentStorage): Send SetCookiePersistentStorage message to the web process. * WebProcess/Cookies/WebCookieManager.h: (WebCookieManager): Add setCookiePersistentStorage() method when using soup. * WebProcess/Cookies/WebCookieManager.messages.in: Add SetCookiePersistentStorage message when using soup. * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp: (WebKit::WebCookieManager::setCookiePersistentStorage): Create a new cookie jar for the given filename and storage type and add it to the soup session. * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp: Added. (webkitSoupCookieJarSqliteOpenDatabase): Open SQLite database. (webkitSoupCookieJarSqliteCreateTable): Create moz_cookies if it doesn't exist. (webkitSoupCookieJarSqliteLoad): Load the initial set of cookies from the database. (webkitSoupCookieJarSqliteInsertCookie): Insert a new cookie into the database. (webkitSoupCookieJarSqliteDeleteCookie): Delete an exising cookie from the database. (webkitSoupCookieJarSqliteChanged): Insert/delete cookies depending on the change. (webkitSoupCookieJarSqliteFinalize): (webkit_soup_cookie_jar_sqlite_init): (webkit_soup_cookie_jar_sqlite_class_init): (webkitSoupCookieJarSqliteNew): * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.h: Added. 2012-07-11 Christophe Dumez [WK2][EFL] Ewk_View should provide more resource loading notifications https://bugs.webkit.org/show_bug.cgi?id=90601 Reviewed by Antonio Gomes. Add new "resource,request,sent", "resource,request,response", "resource,request,failed" and "resource,request,finished" to Ewk_View in order to notify the clients of the main resource load state changes. Introduce new Ewk_Url_Response type that is used to provide information to the clients regarding the resource load responses that are received. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_url_response.cpp: Added. (_Ewk_Url_Response): (ewk_url_response_ref): (ewk_url_response_unref): (ewk_url_response_url_get): (ewk_url_response_status_code_get): (ewk_url_response_mime_type_get): (ewk_url_response_new): * UIProcess/API/efl/ewk_url_response.h: Added. * UIProcess/API/efl/ewk_url_response_private.h: Added. * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (ewk_view_resource_load_initiated): (ewk_view_resource_load_response): (ewk_view_resource_load_failed): (ewk_view_resource_load_finished): (ewk_view_resource_request_sent): (ewk_view_load_provisional_started): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_private.h: * UIProcess/API/efl/ewk_view_resource_load_client.cpp: (toEwkView): (didInitiateLoadForResource): (didSendRequestForResource): (didReceiveResponseForResource): (didFinishLoadForResource): (didFailLoadForResource): (ewk_view_resource_load_client_attach): 2012-07-11 Mark Rowe Fix a logic error in the #if so that the correct code is compiled on Snow Leopard. I introduced this in r122403 when I inverted the sense of the #if. * UIProcess/mac/WKFullScreenWindowController.mm: 2012-07-11 Mark Rowe Build against the latest SDK when targeting older OS X versions. Reviewed by Dan Bernstein. The deployment target is already set to the version that we're targeting, and it's that setting which determines which functionality from the SDK is available to us. * Configurations/Base.xcconfig: 2012-07-11 Mark Rowe WebFullScreenController and WKFullScreenWindowController shouldn't add unprefixed methods to AppKit classes Reviewed by Dan Bernstein. * UIProcess/mac/WKFullScreenWindowController.mm: (convertRectToScreen): Add a static helper method that calls through to -[NSWindow convertRectToScreen:] on OS versions where it exists but otherwise provides a compatibility implementation of it. (-[WKFullScreenWindowController enterFullScreen:]): Call our new helper. 2012-07-11 Mark Rowe Remove BUILDING_ON / TARGETING macros in favor of system availability macros This removal was handled by a script that translates the relevant macros in to the equivalent checks using the system availability macros. Reviewed by Filip Pizlo. * Shared/DictionaryPopupInfo.cpp: * Shared/DictionaryPopupInfo.h: * Shared/mac/PasteboardTypes.mm: * Shared/mac/WebEventFactory.mm: * UIProcess/API/mac/PDFViewController.mm: * UIProcess/API/mac/PageClientImpl.mm: * UIProcess/API/mac/WKView.mm: * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.h: * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm: * UIProcess/Launcher/mac/EnvironmentVariables.cpp: * UIProcess/Launcher/mac/EnvironmentVariables.h: * UIProcess/Launcher/mac/ProcessLauncherMac.mm: * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: * UIProcess/WebPageProxy.cpp: * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/TextCheckerMac.mm: * UIProcess/mac/WKFullScreenWindowController.mm: * UIProcess/mac/WebContextMac.mm: * UIProcess/mac/WebPageProxyMac.mm: * WebKit2Prefix.h: * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm: * WebProcess/WebCoreSupport/WebEditorClient.cpp: * WebProcess/WebCoreSupport/WebEditorClient.h: * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: * WebProcess/WebPage/WebPage.cpp: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/WebPageMac.mm: * WebProcess/com.apple.WebProcess.sb.in: * WebProcess/mac/KeychainItemShimMethods.mm: * WebProcess/mac/SecItemShimMethods.mm: * WebProcess/mac/WebProcessMac.mm: * WebProcess/mac/WebProcessMainMac.mm: * WebProcess/mac/WebProcessShim.mm: 2012-07-11 Simon Fraser pagesPerView param is misnamed for WKPageSetPageLength() https://bugs.webkit.org/show_bug.cgi?id=91033 Rubber-stamped by Dan Bernstein. The name of the second parameter to WKPageSetPageLength(), 'pagesPerView', was confusing; it's a page size (normally width) in pixels. * UIProcess/API/C/WKPagePrivate.h: 2012-07-11 Anders Carlsson Add -Wtautological-compare and -Wsign-compare warning flags https://bugs.webkit.org/show_bug.cgi?id=90994 Reviewed by Mark Rowe. * Configurations/Base.xcconfig: 2012-07-11 No'am Rosenthal [Qt][WK2] Test actual rendering results in API tests https://bugs.webkit.org/show_bug.cgi?id=80609 Reviewed by Alexis Menard. Added a very basic test to tst_QQuickWebView to make sure rendering actually occurs. * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp: (tst_QQuickWebView): (tst_QQuickWebView::basicRenderingSanity): 2012-07-11 Mark Rowe Add a Mountain Lion version of libWebKitSystemInterface.a. Reviewed by John Sullivan. * Configurations/DebugRelease.xcconfig: Look for the library under its expected name. 2012-07-11 No'am Rosenthal [Qt] QRawWebView should notify when rendering is done, so that pixel results can be grabbed at the appropriate moment. https://bugs.webkit.org/show_bug.cgi?id=90641 Reviewed by Jocelyn Turcotte. Implement LayerTreeCoordinator::forceRepaint with logic equivalent to the one in LayerTreeHostCA. If we flush the layers synchronously when forceRepaint is called,when WKPageForceRepaint returns we are guaranteed to have an up-to-date image, as the visible tiles are also synchronously updated. * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp: (WebView::WebView): (WebView::viewNeedsDisplay): (WebView::frameLoaded): (WebView): (WebView::onRepaintDone): (WebView::finishForceRepaint): (WebView::finishFirstLayoutForFrame): (tst_qrawwebview::doNoBackground1): (tst_qrawwebview::doNoBackground2): (tst_qrawwebview::doNoBackground3): (tst_qrawwebview::run): The test for QRawWebView has been updated to use the WebKit2 ForcePaint API prior to generating the pixel results. This has exposed a timing bug in the test - setting the transparentBackground property of a page has to be done before it's created. This has been fixed in the test. * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp: (WebKit::LayerTreeCoordinator::forceRepaint): (WebKit::LayerTreeCoordinator::performScheduledLayerFlush): (WebKit): 2012-07-11 MORITA Hajime WebCoreSupport needs objects each of which follows major WebCore objects https://bugs.webkit.org/show_bug.cgi?id=88499 Reviewed by Alexey Proskuryakov. Added exporting symbols. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-07-11 Sheriff Bot Unreviewed, rolling out r122318. http://trac.webkit.org/changeset/122318 https://bugs.webkit.org/show_bug.cgi?id=90961 It made 11 fast/events/touch fail (Requested by bbandix on #webkit). * UIProcess/API/qt/qquickwebview.cpp: * UIProcess/API/qt/qquickwebview_p.h: 2012-07-11 Keunsoon Lee [EFL][Wk2] WebErrorsEfl.cpp needs to return non-empty errors https://bugs.webkit.org/show_bug.cgi?id=90688 Reviewed by Hajime Morita. Return meaningful error for each case. * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp: (WebKit::cancelledError): create ResourceError for "request canceled". (WebKit::blockedError): create ResourceError for "request blocked". (WebKit::cannotShowURLError): create ResourceError for "cannot show url". (WebKit::interruptedForPolicyChangeError): create ResourceError for "Frame load interrupted by policy change". (WebKit::cannotShowMIMETypeError): create ResourceError for "Cannot show mimetype". (WebKit::fileDoesNotExistError): create ResourceError for "File does not exist". (WebKit::pluginWillHandleLoadError): create ResourceError for "Plugin will handle load". 2012-07-11 Andras Becsi [Qt][WK2] Fix wheel scrolling for simple pages https://bugs.webkit.org/show_bug.cgi?id=90793 Reviewed by Kenneth Rohde Christiansen. Call WebPage::setFixedLayoutSize in setResizesToContentsUsingLayoutSize instead of setting the view size manually and scheduling a relayout. Since setFixedLayoutSize forces a relayout it also updates the scrollbars after the visible rect is available. This fixes scrolling with wheel events for a QML WebView loading a simple local page which previously ended up in a state where scrolling was disabled because the scrollbar update happened before the correct visible rect size was available. Add a QML test and infrastructure to QWebKitTest to cover this case. * UIProcess/API/qt/qwebkittest.cpp: (QWebKitTest::wheelEvent): * UIProcess/API/qt/qwebkittest_p.h: * UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml: Added. * UIProcess/API/qt/tests/qmltests/common/test4.html: Added. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setResizesToContentsUsingLayoutSize): 2012-07-11 Andras Becsi [Qt][WK2] ASSERT: "!m_viewportItem->isMoving()" in QtViewportHandler::flickMoveEnded() https://bugs.webkit.org/show_bug.cgi?id=90875 Reviewed by Kenneth Rohde Christiansen. Since MultiPointTouchArea and PinchArea use the childMouseEventFilter method to filter touch events too, and because Flickable filters child mouse events the canvas calls this function before propagating the touch event to the WebView. Since Flickable does not accept touch events the canvas tries to propagate a synthesized mouse event through the base class childMouseEventFilter function which is accepted by Flickable and interferes with the input events we send to Flicakble hence messes up the internal state of the WebView. This patch reimplements the virtual childMouseEventFilter method so that all the mouse and touch events can be processed by WebKit before they arrive to Flickable. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebView::childMouseEventFilter): * UIProcess/API/qt/qquickwebview_p.h: 2012-07-10 Christophe Dumez [WK2][EFL] Add Battery Status Provider https://bugs.webkit.org/show_bug.cgi?id=90543 Reviewed by Kenneth Rohde Christiansen. Define a battery status provider for WebKit2 EFL which relies on WebCore::BatteryProviderEfl. * CMakeLists.txt: Add WebCore/Modules/battery to include paths. * PlatformEfl.cmake: Add BatteryProvider class to CMake. * UIProcess/API/efl/BatteryProvider.cpp: Added. (toBatteryProvider): (startUpdatingCallback): (stopUpdatingCallback): (BatteryProvider::~BatteryProvider): (BatteryProvider::create): (BatteryProvider::BatteryProvider): (BatteryProvider::startUpdating): (BatteryProvider::stopUpdating): (BatteryProvider::didChangeBatteryStatus): * UIProcess/API/efl/BatteryProvider.h: Added. (BatteryProvider): * UIProcess/API/efl/ewk_context.cpp: (_Ewk_Context): Add BatteryProvider to Ewk_Context. (createDefaultEwkContext): (ewk_context_default_get): 2012-07-10 No'am Rosenthal [Qt] Enable antialiasing for TextureMapper https://bugs.webkit.org/show_bug.cgi?id=90915 Reviewed by Martin Robinson. Enable the new antialiasing functionality for WebLayerTreeRendering. This will make one-tile layers antialiased when using UI_SIDE_COMPOSITING. * UIProcess/WebLayerTreeRenderer.cpp: (WebKit::WebLayerTreeRenderer::ensureRootLayer): 2012-07-10 Adam Barth WebCore::Settings for Hixie76 WebSocket protocol doesn't do anything and should be removed https://bugs.webkit.org/show_bug.cgi?id=90910 Reviewed by Eric Seidel. * Shared/WebPreferencesStore.h: (WebKit): * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetHixie76WebSocketProtocolEnabled): (WKPreferencesGetHixie76WebSocketProtocolEnabled): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2012-07-10 Helder Correia [Qt] Repaint counter for accelerated compositing https://bugs.webkit.org/show_bug.cgi?id=90116 Reviewed by Noam Rosenthal. No new tests, just introducing a debug feature. For this feature to be enabled, the environment variable QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled, both repaint counters and tile borders will be painted. Important notes: - Only WebKit2 is targetted for now. - There is no integration with Preferences. That aproach was taken initially but revealed complex and overkill for such a debugging-only functionality. Thus, to disable it simply restart with the environment variable unset or set to some other value. A Qt-specific drawRepaintCounter() function was added to TextureMapperGL. A QImage is used as scratch buffer to paint borders and counters. It is then uploaded to a BitmapTexture acquired from the pool and finally draw by TextureMapper. The actual compositing happens inside LayerBackingStore::paintToTextureMapper(). Each LayerBackingStoreTile now has a repaint counter which gets incremented in LayerBackingStore::updateTile(). * UIProcess/texmap/LayerBackingStore.cpp: (WebKit::LayerBackingStore::updateTile): (WebKit): (WebKit::shouldShowTileDebugVisuals): (WebKit::LayerBackingStore::paintToTextureMapper): * UIProcess/texmap/LayerBackingStore.h: (WebKit::LayerBackingStoreTile::LayerBackingStoreTile): (LayerBackingStoreTile): (WebKit::LayerBackingStoreTile::incrementRepaintCount): (WebKit::LayerBackingStoreTile::repaintCount): 2012-07-10 Sudarsana Nagineni [WK2] Add Vibration API support for WebKit2 https://bugs.webkit.org/show_bug.cgi?id=90058 Reviewed by Anders Carlsson. Add support for Vibration API to WebKit2. * CMakeLists.txt: * DerivedSources.pri: * GNUmakefile.list.am: * Platform/CoreIPC/MessageID.h: * Shared/API/c/WKBase.h: * Shared/APIObject.h: * Target.pri: * UIProcess/API/C/WKAPICast.h: (WebKit): * UIProcess/API/C/WKVibration.cpp: Added. (WKVibrationGetTypeID): (WKVibrationSetProvider): * UIProcess/API/C/WKVibration.h: Added. * UIProcess/WebVibrationProvider.cpp: Added. (WebKit): (WebKit::WebVibrationProvider::vibrate): (WebKit::WebVibrationProvider::cancelVibration): * UIProcess/WebVibrationProvider.h: Added. (WebKit): (WebVibrationProvider): * UIProcess/WebVibrationProxy.cpp: Added. (WebKit): (WebKit::WebVibrationProxy::create): (WebKit::WebVibrationProxy::WebVibrationProxy): (WebKit::WebVibrationProxy::~WebVibrationProxy): (WebKit::WebVibrationProxy::invalidate): (WebKit::WebVibrationProxy::initializeProvider): (WebKit::WebVibrationProxy::didReceiveMessage): (WebKit::WebVibrationProxy::vibrate): (WebKit::WebVibrationProxy::cancelVibration): * UIProcess/WebVibrationProxy.h: Added. (CoreIPC): (WebKit): (WebVibrationProxy): (WebKit::WebVibrationProxy::clearContext): (WebKit::WebVibrationProxy::type): * UIProcess/WebVibrationProxy.messages.in: Added. * WebProcess/WebCoreSupport/WebVibrationClient.cpp: Added. (WebKit): (WebKit::WebVibrationClient::vibrate): (WebKit::WebVibrationClient::cancelVibration): (WebKit::WebVibrationClient::vibrationDestroyed): * WebProcess/WebCoreSupport/WebVibrationClient.h: Added. (WebKit): (WebVibrationClient): (WebKit::WebVibrationClient::WebVibrationClient): (WebKit::WebVibrationClient::~WebVibrationClient): 2012-07-10 Carlos Garcia Campos [GTK] Add API to clear the cache to WebKit2 GTK+ https://bugs.webkit.org/show_bug.cgi?id=90856 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_clear_cache): Call WKResourceCacheManagerClearCacheForAllOrigins() to clear all resources currently cached. * UIProcess/API/gtk/WebKitWebContext.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol. 2012-07-10 Sheriff Bot Unreviewed, rolling out r122178. http://trac.webkit.org/changeset/122178 https://bugs.webkit.org/show_bug.cgi?id=90857 browser tests, PrerenderBrowserTest.PrerenderFavicon and other tests, started to fail (Requested by hayato on #webkit). * win/WebKit2.def: 2012-07-09 Matt Falkenhagen Add ENABLE_DIALOG_ELEMENT and skeleton files https://bugs.webkit.org/show_bug.cgi?id=90521 Reviewed by Kent Tamura. * Configurations/FeatureDefines.xcconfig: 2012-07-09 Pete Williamson Export the iconURL list to make it available to the Internals class for testing https://bugs.webkit.org/show_bug.cgi?id=88665 Reviewed by Kent Tamura. * win/WebKit2.def: export the DocumentL::iconURLs function 2012-07-09 Christophe Dumez [WK2] Add missing Battery Status API integration to WebContext and WebPage https://bugs.webkit.org/show_bug.cgi?id=90784 Reviewed by Anders Carlsson. Integrate Battery Status API to WebPage, WebContext and properly route messages to the WebBatteryManagerProxy. Without this, the Battery Status tests are crashing for WebKit2. * UIProcess/API/C/WKContext.cpp: (WKContextGetBatteryManager): * UIProcess/API/C/WKContext.h: * UIProcess/WebContext.cpp: (WebKit::WebContext::WebContext): (WebKit::WebContext::~WebContext): (WebKit::WebContext::disconnectProcess): (WebKit::WebContext::didReceiveMessage): * UIProcess/WebContext.h: (WebKit): (WebContext): (WebKit::WebContext::batteryManagerProxy): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didReceiveMessage): * WebProcess/WebCoreSupport/WebBatteryClient.cpp: (WebKit::WebBatteryClient::setController): (WebKit): * WebProcess/WebCoreSupport/WebBatteryClient.h: (WebBatteryClient): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): 2012-07-09 Sudarsana Nagineni [EFL] [WK2] ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) https://bugs.webkit.org/show_bug.cgi?id=90464 Reviewed by Daniel Bates. HashMap has the property that 0 is the empty value for integer keys, so do not use 0 as a key in the HashMap. * Platform/efl/WorkQueueEfl.cpp: (WorkQueue::dispatchAfterDelay): 2012-07-09 Carlos Garcia Campos [GTK] Add a setting to enable/disable page cache to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=90773 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitSettings.cpp: (webKitSettingsSetProperty): (webKitSettingsGetProperty): (webkit_settings_class_init): (webkit_settings_get_enable_page_cache): (webkit_settings_set_enable_page_cache): * UIProcess/API/gtk/WebKitSettings.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: * UIProcess/API/gtk/tests/TestWebKitSettings.cpp: (testWebKitSettings): 2012-07-09 Sheriff Bot Unreviewed, rolling out r122107. http://trac.webkit.org/changeset/122107 https://bugs.webkit.org/show_bug.cgi?id=90794 Build failure on Mac debug bots (Requested by falken_ on #webkit). * Configurations/FeatureDefines.xcconfig: 2012-07-09 Carlos Garcia Campos [GTK] Fix inspector detach when inspector was attached by the client https://bugs.webkit.org/show_bug.cgi?id=90763 Reviewed by Martin Robinson. When the inspector is detached, we are unconditionally removing it from the inspected view, but if the inspector was attached by the client, the parent might be another widget. * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::platformDetach): Remove the inspector view from its parent widget. 2012-07-09 Matt Falkenhagen Add ENABLE_DIALOG_ELEMENT and skeleton files https://bugs.webkit.org/show_bug.cgi?id=90521 Reviewed by Kent Tamura. * Configurations/FeatureDefines.xcconfig: 2012-07-09 Dan Bernstein Fix the Mac build when codesign_allocate is not installed at /usr/bin. * PluginProcess/mac/add-entitlements.sh: Let codesign(1) know where the codesign_allocate tool is by setting the CODESIGN_ALLOCATE environment variable to its path as obtained with xcrun. 2012-07-06 Christophe Dumez [WK2] Add support for Network Information API https://bugs.webkit.org/show_bug.cgi?id=89870 Reviewed by Anders Carlsson. Add Network Information API support for WebKit2. * CMakeLists.txt: * DerivedSources.pri: * GNUmakefile.am: * GNUmakefile.list.am: * Platform/CoreIPC/MessageID.h: * Shared/API/c/WKBase.h: * Shared/APIObject.h: * Shared/WebNetworkInfo.cpp: Added. (WebKit): (WebKit::WebNetworkInfo::WebNetworkInfo): (WebKit::WebNetworkInfo::~WebNetworkInfo): (WebKit::WebNetworkInfo::Data::encode): (WebKit::WebNetworkInfo::Data::decode): * Shared/WebNetworkInfo.h: Added. (WebKit): (WebNetworkInfo): (Data): (WebKit::WebNetworkInfo::create): (WebKit::WebNetworkInfo::bandwidth): (WebKit::WebNetworkInfo::metered): (WebKit::WebNetworkInfo::data): (WebKit::WebNetworkInfo::type): * Target.pri: * UIProcess/API/C/WKAPICast.h: (WebKit): * UIProcess/API/C/WKNetworkInfoManager.cpp: Added. (WKNetworkInfoManagerGetTypeID): * UIProcess/API/C/WKNetworkInfoManager.h: Added. * UIProcess/WebNetworkInfoManagerProxy.cpp: Added. (WebKit): (WebKit::WebNetworkInfoManagerProxy::create): (WebKit::WebNetworkInfoManagerProxy::WebNetworkInfoManagerProxy): (WebKit::WebNetworkInfoManagerProxy::~WebNetworkInfoManagerProxy): (WebKit::WebNetworkInfoManagerProxy::invalidate): (WebKit::WebNetworkInfoManagerProxy::initializeProvider): (WebKit::WebNetworkInfoManagerProxy::providerDidChangeNetworkInformation): (WebKit::WebNetworkInfoManagerProxy::didReceiveMessage): (WebKit::WebNetworkInfoManagerProxy::startUpdating): (WebKit::WebNetworkInfoManagerProxy::stopUpdating): (WebKit::WebNetworkInfoManagerProxy::getBandwidth): (WebKit::WebNetworkInfoManagerProxy::isMetered): * UIProcess/WebNetworkInfoManagerProxy.h: Added. (CoreIPC): (WebKit): (WebNetworkInfoManagerProxy): (WebKit::WebNetworkInfoManagerProxy::clearContext): (WebKit::WebNetworkInfoManagerProxy::type): * UIProcess/WebNetworkInfoManagerProxy.messages.in: Added. * UIProcess/WebNetworkInfoProvider.cpp: Added. (WebKit): (WebKit::WebNetworkInfoProvider::startUpdating): (WebKit::WebNetworkInfoProvider::stopUpdating): (WebKit::WebNetworkInfoProvider::bandwidth): (WebKit::WebNetworkInfoProvider::metered): * UIProcess/WebNetworkInfoProvider.h: Added. (WebKit): (WebNetworkInfoProvider): * WebKit2.pri: * WebProcess/NetworkInfo/WebNetworkInfoManager.cpp: Added. (WebKit): (WebKit::WebNetworkInfoManager::WebNetworkInfoManager): (WebKit::WebNetworkInfoManager::~WebNetworkInfoManager): (WebKit::WebNetworkInfoManager::didReceiveMessage): (WebKit::WebNetworkInfoManager::registerWebPage): (WebKit::WebNetworkInfoManager::unregisterWebPage): (WebKit::WebNetworkInfoManager::bandwidth): (WebKit::WebNetworkInfoManager::metered): (WebKit::WebNetworkInfoManager::didChangeNetworkInformation): * WebProcess/NetworkInfo/WebNetworkInfoManager.h: Added. (CoreIPC): (WebKit): (WebNetworkInfoManager): * WebProcess/NetworkInfo/WebNetworkInfoManager.messages.in: Added. * WebProcess/WebCoreSupport/WebNetworkInfoClient.cpp: Added. (WebKit): (WebKit::WebNetworkInfoClient::~WebNetworkInfoClient): (WebKit::WebNetworkInfoClient::bandwidth): (WebKit::WebNetworkInfoClient::metered): (WebKit::WebNetworkInfoClient::startUpdating): (WebKit::WebNetworkInfoClient::stopUpdating): * WebProcess/WebCoreSupport/WebNetworkInfoClient.h: Added. (WebKit): (WebNetworkInfoClient): (WebKit::WebNetworkInfoClient::WebNetworkInfoClient): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): (WebKit::WebProcess::didReceiveMessage): * WebProcess/WebProcess.h: (WebProcess): (WebKit::WebProcess::networkInfoManager): 2012-07-06 Jessie Berlin WKContext should ask for its injected bundle initialization user data when it needs it so the client doesn't have to keep it up to date. https://bugs.webkit.org/show_bug.cgi?id=90627 Reviewed by Anders Carlsson. Add a getInjectedBundleInitializationUserData callback to WKContextInjectedBundleClient. * Shared/APIClientTraits.cpp: Allow the WKContextInjectedBundleClient API to be versioned. * Shared/APIClientTraits.h: * UIProcess/API/C/WKContext.h: Add the callback and bump the version of WKContextInjectedBundleClient. * UIProcess/WebContext.cpp: (WebKit::WebContext::ensureWebProcess): Prefer any user data returned when the callback is invoked over that set with WKContextSetInitializationUserDataForInjectedBundle. * UIProcess/WebContextInjectedBundleClient.cpp: (WebKit::WebContextInjectedBundleClient::getInjectedBundleInitializationUserData): Invoke the callback if the client has registered for it. * UIProcess/WebContextInjectedBundleClient.h: 2012-07-06 Jessie Berlin WebContext::injectedBundleInitializationUserData() is unused, should be removed https://bugs.webkit.org/show_bug.cgi?id=90486 Reviewed by Anders Carlsson. * UIProcess/WebContext.h: Remove it. 2012-07-06 Carlos Garcia Campos [GTK] Add site specific quirks setting to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=90663 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitSettings.cpp: (webKitSettingsSetProperty): (webKitSettingsGetProperty): (webkit_settings_class_init): (webkit_settings_get_enable_site_specific_quirks): (webkit_settings_set_enable_site_specific_quirks): * UIProcess/API/gtk/WebKitSettings.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: * UIProcess/API/gtk/tests/TestWebKitSettings.cpp: (testWebKitSettings): 2012-07-06 Dominik Röttsches ProcessLauncher's WorkQueue's name is too long on Windows https://bugs.webkit.org/show_bug.cgi?id=44041 Reviewed by Andreas Kling. Shorten thread name for process launcher so that we can silence the warning for thread names getting truncated under VisualStudio - see createThread() in Threading.cpp. * UIProcess/Launcher/ProcessLauncher.cpp: (WebKit::processLauncherWorkQueue): 2012-07-06 Christophe Dumez [EFL] WebKit-EFL headers do not build with gcc < 4.6 https://bugs.webkit.org/show_bug.cgi?id=90681 Unreviewed EFL build fix. Remove several forward declarations from ewk_view header to avoid typedef redefinitions which are illegal in C. * UIProcess/API/efl/ewk_view.h: 2012-07-06 Csaba Osztrogonác [Qt] Buildfix for newer Qt5 https://bugs.webkit.org/show_bug.cgi?id=90519 Reviewed by Tor Arne Vestbø. * UIProcess/API/qt/qwebkittest.cpp: Include qpa/qwindowsysteminterface.h instead of deprecated qwindowsysteminterface_qpa.h. 2012-07-06 Oswald Buddenhagen [Qt] Adjust to changed generation of master include file The responsiblity for creating the master include was moved out of syncqt. @ignore_for_master_contents still stays, as syncqt (ab-)uses this for determining whether a header is private. https://bugs.webkit.org/show_bug.cgi?id=90461 Reviewed by Tor Arne Vestbø. * UIProcess/API/qt/tests/bytearraytestdata.h: * UIProcess/API/qt/tests/testwindow.h: 2012-07-05 Christophe Dumez [WK2][EFL] Ewk_View needs to report load status changes https://bugs.webkit.org/show_bug.cgi?id=90566 Reviewed by Kenneth Rohde Christiansen. Add new "load,finished", "load,provisional,failed", "load,provisional,redirect" and "load,provisional,started" signals on the Ewk_View to notify the client of different load state changes. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_load_finished): (ewk_view_load_provisional_failed): (ewk_view_load_provisional_redirect): (ewk_view_load_provisional_started): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_loader_client.cpp: (didFinishLoadForFrame): (didFailLoadWithErrorForFrame): (didStartProvisionalLoadForFrame): (didReceiveServerRedirectForProvisionalLoadForFrame): (didFailProvisionalLoadWithErrorForFrame): (ewk_view_loader_client_attach): * UIProcess/API/efl/ewk_view_private.h: 2012-07-05 Luiz Agostini [Qt] Transform should be applied to the clip rect in QRawWebView::paint https://bugs.webkit.org/show_bug.cgi?id=90652 Reviewed by Kenneth Rohde Christiansen. Applying the transformation matrix to the clip rect in QRawWebView::paint. * UIProcess/API/qt/raw/qrawwebview.cpp: (QRawWebView::paint): 2012-07-05 Christophe Dumez [WK2][EFL] Ewk_View should provide API to set/get device pixel ratio https://bugs.webkit.org/show_bug.cgi?id=90590 Reviewed by Kenneth Rohde Christiansen. Add API to Ewk_View so retrieve and set the device pixel ratio. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_device_pixel_ratio_set): (ewk_view_device_pixel_ratio_get): * UIProcess/API/efl/ewk_view.h: 2012-07-05 Anders Carlsson Type-ahead doesn't work in options inside optgroups https://bugs.webkit.org/show_bug.cgi?id=90647 Reviewed by Dan Bernstein. Set the title of the menu item to a string that doesn't contain any leading or trailing whitespace. * UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::populate): 2012-07-05 Christophe Dumez [WK2] Add C API for Battery Status API https://bugs.webkit.org/show_bug.cgi?id=90545 Reviewed by Anders Carlsson. Add C API for WKBatteryManager and WKBatteryStatus so that clients can support the Battery Status API in WebKit2. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * UIProcess/API/C/WKBatteryManager.cpp: (WKBatteryManagerProviderDidChangeBatteryStatus): (WKBatteryManagerProviderUpdateBatteryStatus): * UIProcess/API/C/WKBatteryStatus.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp. (WKBatteryStatusGetTypeID): (WKBatteryStatusCreate): * UIProcess/API/C/WKBatteryStatus.h: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp. 2012-07-05 Sheriff Bot Unreviewed, rolling out r121899. http://trac.webkit.org/changeset/121899 https://bugs.webkit.org/show_bug.cgi?id=90623 Unauthorized WK2 API breakage (Requested by andersca on #webkit). * Shared/API/c/WKSharedAPICast.h: (WebKit::toCopiedURLAPI): 2012-07-05 Balazs Kelemen [Qt] WTR crashes if a URL is passed as a parameter https://bugs.webkit.org/show_bug.cgi?id=88093 Reviewed by Zoltan Herczeg. * Shared/API/c/WKSharedAPICast.h: (WebKit::toCopiedURLAPI): Don't special case null string. It's handled fine by WebURL and passing 0 is not suitable to the API. 2012-07-05 Dongwoo Im [EFL] Enable the CUSTOM_SCHEME_HANDLER feature as default. https://bugs.webkit.org/show_bug.cgi?id=88608 Reviewed by Hajime Morita. * WebProcess/WebCoreSupport/WebChromeClient.h: (WebKit::WebChromeClient::isProtocolHandlerRegistered): Add a stub function. (WebKit::WebChromeClient::unregisterProtocolHandler): Add a stub function. (WebChromeClient): 2012-07-05 Ryuan Choi [Wk2][EFL] EFL needs a WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=87659 Reviewed by Kenneth Rohde Christiansen. * PlatformEfl.cmake: Added WKImageCairo.cpp in source list. 2012-07-05 Hyerim Bae [EFL][WK2] Add ewk_view_reload_bypass_cache API. https://bugs.webkit.org/show_bug.cgi?id=89413 Reviewed by Kenneth Rohde Christiansen. Add API, which is for reloading documents without cache. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_reload_bypass_cache): * UIProcess/API/efl/ewk_view.h: 2012-07-05 Christophe Dumez [WK2][EFL] Ewk_View needs API to load HTML data https://bugs.webkit.org/show_bug.cgi?id=90540 Reviewed by Kenneth Rohde Christiansen. Add method to Ewk_View to load provided HTML data. This is used for e.g. when an URL cannot be reached and we need to display an error page. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_html_load): * UIProcess/API/efl/ewk_view.h: 2012-07-05 Christophe Dumez [WK2][EFL] Ewk_View needs to report new resource requests https://bugs.webkit.org/show_bug.cgi?id=90577 Reviewed by Kenneth Rohde Christiansen. Add new "resource,request,new" signal to Ewk_View to notify clients of the resource requests being initiated. New Ewk_Url_Request and Ewk_Web_Resource types are introduced in order to provide the clients with the needed information regarding the resource requests. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_url_request.cpp: Added. (_Ewk_Url_Request): (ewk_url_request_ref): (ewk_url_request_unref): (ewk_url_request_url_get): (ewk_request_first_party_get): (ewk_url_request_http_method_get): (ewk_url_request_new): * UIProcess/API/efl/ewk_url_request.h: Added. * UIProcess/API/efl/ewk_url_request_private.h: Added. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_base_add): (ewk_view_resource_load_initiated): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_private.h: * UIProcess/API/efl/ewk_view_resource_load_client.cpp: Added. (didInitiateLoadForResource): (ewk_view_resource_load_client_attach): * UIProcess/API/efl/ewk_view_resource_load_client_private.h: Added. * UIProcess/API/efl/ewk_web_resource.cpp: Added. (_Ewk_Web_Resource): (ewk_web_resource_ref): (ewk_web_resource_unref): (ewk_web_resource_uri_get): (ewk_web_resource_new): (ewk_web_resource_main_get): * UIProcess/API/efl/ewk_web_resource.h: Added. * UIProcess/API/efl/ewk_web_resource_private.h: Added. 2012-07-04 John Mellor Text Autosizing: Add compile flag and runtime setting https://bugs.webkit.org/show_bug.cgi?id=87394 This patch renames Font Boosting to Text Autosizing. Reviewed by Adam Barth. * Configurations/FeatureDefines.xcconfig: 2012-07-04 Christophe Dumez [EFL][WK2] Ewk_View should report load errors https://bugs.webkit.org/show_bug.cgi?id=90479 Reviewed by Kenneth Rohde Christiansen. The Ewk_View now emits a "load,error" signal when the main frame fails loading. Information about the error is provided via the new Ewk_Web_Error type. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_view.cpp: (ewk_view_load_error): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_loader_client.cpp: (didFailLoadWithErrorForFrame): (ewk_view_loader_client_attach): * UIProcess/API/efl/ewk_view_private.h: * UIProcess/API/efl/ewk_web_error.cpp: Added. (_Ewk_Web_Error): (ewk_web_error_free): (ewk_web_error_domain_get): (ewk_web_error_url_get): (ewk_web_error_code_get): (ewk_web_error_description_get): (ewk_web_error_cancellation_get): (ewk_web_error_new): * UIProcess/API/efl/ewk_web_error.h: Added. * UIProcess/API/efl/ewk_web_error_private.h: Added. 2012-07-03 Christophe Dumez [WK2][EFL] Ewk_View should report the load progress https://bugs.webkit.org/show_bug.cgi?id=90457 Reviewed by Kenneth Rohde Christiansen. The Ewk_View now reports the estimated load progress of the page via the new "load,progress". A method is also added to Ewk_View in order to retrieve the current load progress. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_load_progress_get): (ewk_view_load_progress_changed): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_loader_client.cpp: (didChangeProgress): (ewk_view_loader_client_attach): * UIProcess/API/efl/ewk_view_private.h: 2012-07-03 Christophe Dumez [WK2] Add support for Battery Status API https://bugs.webkit.org/show_bug.cgi?id=89558 Reviewed by Anders Carlsson. Add support for Battery Status API to WebKit2. * CMakeLists.txt: * DerivedSources.pri: * GNUmakefile.am: * GNUmakefile.list.am: * Platform/CoreIPC/MessageID.h: * Shared/API/c/WKBase.h: * Shared/APIObject.h: * Shared/WebBatteryStatus.cpp: Added. (WebKit): (WebKit::WebBatteryStatus::WebBatteryStatus): (WebKit::WebBatteryStatus::~WebBatteryStatus): (WebKit::WebBatteryStatus::Data::encode): (WebKit::WebBatteryStatus::Data::decode): * Shared/WebBatteryStatus.h: Added. (WebKit): (WebBatteryStatus): (Data): (WebKit::WebBatteryStatus::create): (WebKit::WebBatteryStatus::isCharging): (WebKit::WebBatteryStatus::chargingTime): (WebKit::WebBatteryStatus::dischargingTime): (WebKit::WebBatteryStatus::level): (WebKit::WebBatteryStatus::data): (WebKit::WebBatteryStatus::type): * Target.pri: * UIProcess/API/C/WKAPICast.h: (WebKit): * UIProcess/API/C/WKBatteryManager.cpp: Added. (WKBatteryManagerGetTypeID): * UIProcess/API/C/WKBatteryManager.h: Added. * UIProcess/WebBatteryManagerProxy.cpp: Added. (WebKit): (WebKit::WebBatteryManagerProxy::create): (WebKit::WebBatteryManagerProxy::WebBatteryManagerProxy): (WebKit::WebBatteryManagerProxy::~WebBatteryManagerProxy): (WebKit::WebBatteryManagerProxy::invalidate): (WebKit::WebBatteryManagerProxy::initializeProvider): (WebKit::WebBatteryManagerProxy::didReceiveMessage): (WebKit::WebBatteryManagerProxy::startUpdating): (WebKit::WebBatteryManagerProxy::stopUpdating): (WebKit::WebBatteryManagerProxy::providerDidChangeBatteryStatus): (WebKit::WebBatteryManagerProxy::providerUpdateBatteryStatus): * UIProcess/WebBatteryManagerProxy.h: Added. (CoreIPC): (WebKit): (WebBatteryManagerProxy): (WebKit::WebBatteryManagerProxy::clearContext): (WebKit::WebBatteryManagerProxy::type): * UIProcess/WebBatteryManagerProxy.messages.in: Added. * UIProcess/WebBatteryProvider.cpp: Added. (WebKit): (WebKit::WebBatteryProvider::startUpdating): (WebKit::WebBatteryProvider::stopUpdating): * UIProcess/WebBatteryProvider.h: Added. (WebKit): (WebBatteryProvider): * WebKit2.pri: * WebProcess/Battery/WebBatteryManager.cpp: Added. (WebKit): (WebKit::WebBatteryManager::WebBatteryManager): (WebKit::WebBatteryManager::~WebBatteryManager): (WebKit::WebBatteryManager::didReceiveMessage): (WebKit::WebBatteryManager::registerWebPage): (WebKit::WebBatteryManager::unregisterWebPage): (WebKit::WebBatteryManager::didChangeBatteryStatus): (WebKit::WebBatteryManager::updateBatteryStatus): * WebProcess/Battery/WebBatteryManager.h: Added. (CoreIPC): (WebKit): (WebBatteryManager): * WebProcess/Battery/WebBatteryManager.messages.in: Added. * WebProcess/WebCoreSupport/WebBatteryClient.cpp: Added. (WebKit): (WebKit::WebBatteryClient::startUpdating): (WebKit::WebBatteryClient::stopUpdating): (WebKit::WebBatteryClient::batteryControllerDestroyed): * WebProcess/WebCoreSupport/WebBatteryClient.h: Added. (WebKit): (WebBatteryClient): (WebKit::WebBatteryClient::WebBatteryClient): (WebKit::WebBatteryClient::~WebBatteryClient): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): (WebKit::WebProcess::didReceiveMessage): * WebProcess/WebProcess.h: (WebProcess): (WebKit::WebProcess::batteryManager): 2012-07-03 Tor Arne Vestbø [Qt] Make use of .qmake.cache for caching features Instead of loading() features from the files that need them (and re-running a bunch of checks), we now run feature detection as part of configure.pro, and have build-webkit write the computed feature-defines and CONFIG to .qmake.cache, which is then loaded by qmake _before_ even defaults_pre when building WebKit.pro. At some point we'll be able to selectivly prevent running of config tests in configure.pro, which means we don't need a separate code-path for the build-webkit --help case. We should also move the code in build-webkit that now uses .webkit.config to detect clean builds, to use .qmake.cache, since we now store the same thing there. Original patch by Oswald Buddenhagen Reviewed by Tor Arne Vestbø. * DerivedSources.pri: * Target.pri: 2012-07-03 Sheriff Bot Unreviewed, rolling out r121766. http://trac.webkit.org/changeset/121766 https://bugs.webkit.org/show_bug.cgi?id=90465 It caused flakey build errors on the bots (Requested by Ossy on #webkit). * DerivedSources.pri: * Target.pri: 2012-07-03 Carlos Garcia Campos [GTK] Add WebKitWebView::context-menu-dismissed signal to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=90386 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_class_init): Add context-menu-dismissed signal. (contextMenuDismissed): Emit context-menu-dismissed signal. (webkitWebViewPopulateContextMenu): Connect to deactivate signal of the GtkMenu and emit WebKitWebView::context-menu-dismissed when the gtk menu is deactivated. * UIProcess/API/gtk/WebKitWebView.h: (_WebKitWebViewClass): Add virtual methos for context-menu-dismissed signal. * UIProcess/API/gtk/tests/TestContextMenu.cpp: (testContextMenuDismissed): (beforeAll): * UIProcess/gtk/WebContextMenuProxyGtk.h: (WebKit::WebContextMenuProxyGtk::gtkMenu): Get the GtkMenu built for the context menu proxy. 2012-07-03 Piotr Roguski [EFL][WK2] Added missing WebPageProxy::ViewIsFocused flag to WebPageProxy::viewStateDidChange() call in _ewk_view_smart_focus_out() function. https://bugs.webkit.org/show_bug.cgi?id=89877 Reviewed by Andreas Kling. Although name of the flag suggest it should be used only on focus in, omitting it in case of focus out will prevent WebPageProxy::viewStateDidChange() from sending Messages::WebPage::SetFocused(false). * UIProcess/API/efl/ewk_view.cpp: (_ewk_view_smart_focus_out): 2012-07-03 Viatcheslav Ostapenko [Qt][WK2] API tests randomly asserts in QQuickWebPage::setContentsScale(qreal) https://bugs.webkit.org/show_bug.cgi?id=88679 Reviewed by Csaba Osztrogonác. Viewport parameters cannot be calculated while viewport is not visible and viewport size is 0, so let's delay calculation of viewport parameters until view becomes visible. * UIProcess/qt/QtViewportHandler.cpp: (WebKit::QtViewportHandler::pageContentsSizeChanged): 2012-07-03 Tor Arne Vestbø [Qt] Make use of .qmake.cache for caching features Instead of loading() features from the files that need them (and re-running a bunch of checks), we now run feature detection as part of configure.pro, and have build-webkit write the computed feature-defines and CONFIG to .qmake.cache, which is then loaded by qmake _before_ even defaults_pre when building WebKit.pro. At some point we'll be able to selectivly prevent running of config tests in configure.pro, which means we don't need a separate code-path for the build-webkit --help case. We should also move the code in build-webkit that now uses .webkit.config to detect clean builds, to use .qmake.cache, since we now store the same thing there. Original patch by Oswald Buddenhagen Reviewed by Tor Arne Vestbø. * DerivedSources.pri: * Target.pri: 2012-07-03 Alexis Menard [Qt] When calling accept() on the FilePickerContextObject with an empty list, early return and call reject(). https://bugs.webkit.org/show_bug.cgi?id=89755 Reviewed by Simon Hausmann. When calling accept with an empty list of files we can just bailout and call reject(). Any other processing is pointless. * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml: * UIProcess/qt/QtDialogRunner.cpp: (WebKit::FilePickerContextObject::accept): 2012-07-03 Balazs Kelemen [Qt][WK2] fast/viewport/viewport-91.html still fails after r121555 and r121661 https://bugs.webkit.org/show_bug.cgi?id=90376 Reviewed by Csaba Osztrogonác. layoutTestController.dumpConfigurationForViewport still need to use the constant target DPI of 160. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::viewportConfigurationAsText): 2012-07-03 Christophe Dumez [EFL][WK2] Add API to deliver a Web Intent to a frame https://bugs.webkit.org/show_bug.cgi?id=90067 Reviewed by Kenneth Rohde Christiansen. Add ewk_view_intent_deliver() method on the Ewk_View to deliver a Web Intent to the view's main frame. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_intent_deliver): * UIProcess/API/efl/ewk_view.h: 2012-07-02 Christophe Dumez [EFL][WK2] Add API to inspect a Web Intent service https://bugs.webkit.org/show_bug.cgi?id=90066 Reviewed by Kenneth Rohde Christiansen. Add EFL API to inspect a Web Intent Service and emit a signal on the view when a new intent service registers. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_intent_service.cpp: Added. (_Ewk_Intent_Service): (ewk_intent_service_ref): (ewk_intent_service_unref): (ewk_intent_service_action_get): (ewk_intent_service_type_get): (ewk_intent_service_href_get): (ewk_intent_service_title_get): (ewk_intent_service_disposition_get): (ewk_intent_service_new): * UIProcess/API/efl/ewk_intent_service.h: Added. * UIProcess/API/efl/ewk_intent_service_private.h: Copied from Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_intent_service_register): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_loader_client.cpp: (registerIntentServiceForFrame): (ewk_view_loader_client_attach): * UIProcess/API/efl/ewk_view_private.h: 2012-07-02 Christophe Dumez [WK2][EFL] Free Ewk_Intent calloc'd memory with free() instead of delete https://bugs.webkit.org/show_bug.cgi?id=90433 Reviewed by Kenneth Rohde Christiansen. Free calloc'd memory with free() instead of delete in Ewk_Intent. Add blank lines before return statements for consistency. * UIProcess/API/efl/ewk_intent.cpp: (ewk_intent_unref): (ewk_intent_action_get): (ewk_intent_type_get): (ewk_intent_service_get): (ewk_intent_suggestions_get): (ewk_intent_extra_get): (ewk_intent_extra_names_get): (ewk_intent_new): 2012-07-02 Martin Robinson [TextureMapper] The TextureMapper should support edge-distance anti-antialiasing https://bugs.webkit.org/show_bug.cgi?id=90308 Reviewed by Noam Rosenthal. * UIProcess/texmap/LayerBackingStore.cpp: (WebKit::LayerBackingStore::paintToTextureMapper): Update the method to call paint with the new argument. 2012-07-02 Benjamin Poulain Do not do any logging initialization when logging is disabled https://bugs.webkit.org/show_bug.cgi?id=90228 Reviewed by Simon Fraser. * Platform/Logging.cpp: * Platform/Logging.h: * UIProcess/WebContext.cpp: (WebKit::WebContext::WebContext): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): 2012-07-02 No'am Rosenthal [Qt][WK2] New API tests introduced in r121620 fail https://bugs.webkit.org/show_bug.cgi?id=90372 Reviewed by Luiz Agostini. Updated the pixel comparison to produce more predictable results. * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp: (compareImages): 2012-07-02 Alexis Menard [Qt] Fix WebProcess crash on Mac when accessing a site with video tag. https://bugs.webkit.org/show_bug.cgi?id=90384 Reviewed by Jocelyn Turcotte. We need to initialize the private symbols used by MediaPlayerPrivateQTKit otherwise they will be null and it will lead to a crash. We copy WebSystemInterface files for WK2 just like the Mac port as WK2 may have different needs than WK1 layer (we may add or remove symbols in here). It doesn't fix the video rendering yet but it's first step. * Target.pri: * WebProcess/WebCoreSupport/qt/WebSystemInterface.h: Added. * WebProcess/WebCoreSupport/qt/WebSystemInterface.mm: Added. (InitWebCoreSystemInterfaceForWK2): * WebProcess/qt/WebProcessMainQt.cpp: (WebKit::WebProcessMainQt): 2012-07-02 Sudarsana Nagineni [EFL] [WK2] Remove content sniffer and decoder initialization from WebProcess https://bugs.webkit.org/show_bug.cgi?id=90275 Reviewed by Martin Robinson. Do not initialize content sniffer and decoder in the WebProcess because the initialization is now done in WebCore. * WebProcess/efl/WebProcessMainEfl.cpp: (WebKit::WebProcessMainEfl): 2012-07-02 Sheriff Bot Unreviewed, rolling out r120329, r121113, and r121138. http://trac.webkit.org/changeset/120329 http://trac.webkit.org/changeset/121113 http://trac.webkit.org/changeset/121138 https://bugs.webkit.org/show_bug.cgi?id=90368 Introduced noticeable keyboard-related spins due to synchronous IPC. (Requested by kling on #webkit). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleKeyboardEvent): (WebKit::WebPageProxy::didReceiveEvent): * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::keyEvent): 2012-07-01 Christophe Dumez [EFL][WK2] Add API to inspect a Web Intent https://bugs.webkit.org/show_bug.cgi?id=89749 Reviewed by Kenneth Rohde Christiansen. Add EFL API to inspect a Web Intent and emit a signal on the view when a new intent request is made. * PlatformEfl.cmake: * UIProcess/API/efl/EWebKit2.h: * UIProcess/API/efl/ewk_intent.cpp: Added. (_Ewk_Intent): (ewk_intent_ref): (ewk_intent_unref): (ewk_intent_action_get): (ewk_intent_type_get): (ewk_intent_service_get): (ewk_intent_suggestions_get): (ewk_intent_extra_get): (ewk_intent_extra_names_get): (ewk_intent_new): * UIProcess/API/efl/ewk_intent.h: Added. * UIProcess/API/efl/ewk_intent_private.h: Copied from Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_intent_request_new): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_loader_client.cpp: (didReceiveIntentForFrame): (ewk_view_loader_client_attach): * UIProcess/API/efl/ewk_view_private.h: 2012-06-29 Luiz Agostini [Qt][WK2] Private non-QtQuick API https://bugs.webkit.org/show_bug.cgi?id=84532 Reviewed by Noam Rosenthal. Adding new private non-QtQuick API. This new C++ API makes it possible to have control over the lower levels of WebKit without going via QML. This is a first version of the API, enough to show pages on the screen. Many features are not implemented. * Target.pri: * UIProcess/API/qt/raw/qrawwebview.cpp: Added. * UIProcess/API/qt/raw/qrawwebview_p.h: Added. * UIProcess/API/qt/raw/qrawwebview_p_p.h: Added. The tests for the new API are pixel tests. They use QRawWebView to load html files and generate images, and them compare those images to the ones in UIProcess/API/qt/tests/html/resources. * UIProcess/API/qt/tests/html/bluesquare.html: Added. * UIProcess/API/qt/tests/html/redsquare.html: Added. * UIProcess/API/qt/tests/html/resources/qwkview_noBackground1.png: Added. * UIProcess/API/qt/tests/html/resources/qwkview_noBackground3.png: Added. * UIProcess/API/qt/tests/html/resources/qwkview_paint.png: Added. * UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro: Added. * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp: Added. 2012-06-29 Christophe Dumez [WK2] Move intent delivery code from the frame to the page https://bugs.webkit.org/show_bug.cgi?id=89974 Reviewed by Anders Carlsson. Move the intent delivery code from the frame to the page and add the corresponding C API for WKPage. * UIProcess/API/C/WKPage.cpp: (WKPageDeliverIntentToFrame): * UIProcess/API/C/WKPage.h: * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::stopLoading): * UIProcess/WebFrameProxy.h: (WebKit): * UIProcess/WebPageProxy.cpp: (WebKit): (WebKit::WebPageProxy::deliverIntentToFrame): * UIProcess/WebPageProxy.h: (WebPageProxy): 2012-06-29 Dan Bernstein Can’t get basic element info from a WKRenderObject https://bugs.webkit.org/show_bug.cgi?id=90301 Reviewed by Anders Carlsson. Moved the element info (tag name, id and class names) from WebRenderLayer to WebRenderObject, and gave WebRenderLayer a reference to a (shallow) WebRenderObject. Added WKRenderObject API for getting element info, while leaving the WKRenderLayer API in place for now for Safari. * Shared/API/c/WKRenderLayer.cpp: (WKRenderLayerGetRenderer): Added this wrapper. (WKRenderLayerCopyRendererName): Changed to get the name from the renderer. (WKRenderLayerCopyElementTagName): Changed to go through the renderer. (WKRenderLayerCopyElementID): Ditto. (WKRenderLayerGetElementClassNames): Ditto. * Shared/API/c/WKRenderLayer.h: Added declaration of WKRenderLayerGetRenderer() and comments about removing older API. * Shared/API/c/WKRenderObject.cpp: (WKRenderObjectCopyElementTagName): Added this wrapper. (WKRenderObjectCopyElementID): Ditto. (WKRenderObjectGetElementClassNames): Ditto. * Shared/API/c/WKRenderObject.h: * Shared/UserMessageCoders.h: (WebKit::UserMessageEncoder::baseEncode): Removed the element info from the encoding of WebRenderLayer, and added the renderer. Added the element info to the encoding of WebRenderObject. (WebKit::UserMessageDecoder::baseDecode): Updated to match the encoding changes. * Shared/WebRenderLayer.cpp: (WebKit::WebRenderLayer::WebRenderLayer): Changed to initialize the m_renderer member variable with a WebRenderObject for the layer’s renderer, and removed the initialization of the element-related member variables that were removed. * Shared/WebRenderLayer.h: (WebKit::WebRenderLayer::create): Changed to take a renderer instead of renderer and element info. (WebKit::WebRenderLayer::renderer): Added this getter. (WebKit::WebRenderLayer::WebRenderLayer): Changed to take a renderer instead of renderer and element info. * Shared/WebRenderObject.cpp: (WebKit::WebRenderObject::create): Changed to pass true for the shouldIncludeDescendants parameter. (WebKit::WebRenderObject::WebRenderObject): Added a shouldIncludeDescdendants boolean parameter. When it is false, the m_children array remains null. Added initialization of member variables with the element’s tag name, id and class list. * Shared/WebRenderObject.h: (WebKit::WebRenderObject::create): Added an overload that takes a RenderObject and creates a shallow WebRenderObject. (WebRenderObject): Changed to take element tag name, id and class list. (WebKit::WebRenderObject::elementTagName): Added this getter. (WebKit::WebRenderObject::elementID): Ditto. (WebKit::WebRenderObject::elementClassNames): Ditto. (WebKit::WebRenderObject::WebRenderObject): 2012-06-29 Tony Chang Unreviewed, rolling out r121572. http://trac.webkit.org/changeset/121572 https://bugs.webkit.org/show_bug.cgi?id=90249 Breaks Mac build since it depends on r121547, which was rolled out * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_GetValue): * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection): * WebProcess/WebCoreSupport/WebEditorClient.h: 2012-06-29 Eric Seidel Remove BUILDING_ON_LEOPARD now that no ports build on Leopard https://bugs.webkit.org/show_bug.cgi?id=90249 Reviewed by Ryosuke Niwa. * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_GetValue): * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection): * WebProcess/WebCoreSupport/WebEditorClient.h: 2012-06-29 Konrad Piascik Don't hardcode target dpi of 160 (it should be 96 on desktop) https://bugs.webkit.org/show_bug.cgi?id=88114 Reviewed by Adam Barth. Updated the call to computeViewportAttributes. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::sendViewportAttributesChanged): (WebKit::WebPage::viewportConfigurationAsText): 2012-06-29 Sheriff Bot Unreviewed, rolling out r121529. http://trac.webkit.org/changeset/121529 https://bugs.webkit.org/show_bug.cgi?id=90260 Failed to compile on Chromium WebKitMacBuilder (Requested by keishi on #webkit). * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]): * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm: * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): 2012-06-29 Eric Seidel Remove more BUILDING_ON_LEOPARD branches now that no port builds on Leopard https://bugs.webkit.org/show_bug.cgi?id=90252 Reviewed by Ryosuke Niwa. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]): * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm: * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): 2012-06-28 MORITA Hajime [Refactoring] NodeRenderingContext ctor could be built on top of the ComposedShadowTreeWalker https://bugs.webkit.org/show_bug.cgi?id=89732 Reviewed by Dimitri Glazkov. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-06-28 John Sullivan Undo handling in WebKit2 is not robust against some page-closing code paths Reviewed by Enrica Casucci. * UIProcess/API/mac/PageClientImpl.h: Declared public function viewWillMoveToAnotherWindow(). * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::viewWillMoveToAnotherWindow): New function, calls clearAllEditCommands() to remove any Undo actions from the stack. This guarantees that no Undo actions will be abandoned when the PageClientImpl is dealloc'ed. * UIProcess/API/mac/WKView.mm: (-[WKView viewWillMoveToWindow:]): Now informs PageClientImpl via new function PageClientImpl::viewWillMoveToAnotherWindow(). 2012-06-28 Christophe Dumez [WK2] Add C API to inspect a Web Intent service https://bugs.webkit.org/show_bug.cgi?id=89276 Reviewed by Anders Carlsson. Add C API for Web intent service so that it can be queried on client side. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * UIProcess/API/C/WKIntentServiceInfo.cpp: Added. (WKIntentServiceInfoGetTypeID): (WKIntentServiceInfoCopyAction): (WKIntentServiceInfoCopyType): (WKIntentServiceInfoCopyHref): (WKIntentServiceInfoCopyTitle): (WKIntentServiceInfoCopyDisposition): * UIProcess/API/C/WKIntentServiceInfo.h: Added. 2012-06-28 Balazs Kelemen [Qt] KURL assert at fast/loader/opaque-base-url.html https://bugs.webkit.org/show_bug.cgi?id=89468 Reviewed by Simon Hausmann. Don't use the KURL(ParsedURLStringTag, const String&) constructor. We cannot be sure that the url in encode was valid and even if it was the message could have been corrupted. * Shared/qt/WebCoreArgumentCodersQt.cpp: (CoreIPC::::encode): (CoreIPC::::decode): 2012-06-27 Carlos Garcia Campos Unreviewed. Fix the build without TEXTURE_MAPPER_GL. * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: * WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::platformInitialize): 2012-06-25 Mark Hahnenberg JSLock should be per-JSGlobalData https://bugs.webkit.org/show_bug.cgi?id=89123 Reviewed by Geoffrey Garen. Changed all sites that used JSLock to instead use the new JSLockHolder and pass in the correct JS context that the code is about to interact with that needs protection. Also added a couple JSLocks to places that didn't already have it that needed it. * Shared/mac/WebMemorySampler.mac.mm: (WebKit::WebMemorySampler::sampleWebKit): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::javaScriptObjectsCount): (WebKit::InjectedBundle::reportException): * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::callMethod): (WebKit::JSNPObject::callObject): (WebKit::JSNPObject::callConstructor): (WebKit::JSNPObject::put): (WebKit::JSNPObject::deleteProperty): (WebKit::JSNPObject::getOwnPropertyNames): (WebKit::JSNPObject::propertyGetter): * WebProcess/Plugins/Netscape/NPJSObject.cpp: (WebKit::NPJSObject::hasMethod): (WebKit::NPJSObject::invoke): (WebKit::NPJSObject::invokeDefault): (WebKit::NPJSObject::hasProperty): (WebKit::NPJSObject::getProperty): (WebKit::NPJSObject::setProperty): (WebKit::NPJSObject::removeProperty): (WebKit::NPJSObject::enumerate): (WebKit::NPJSObject::construct): * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): (WebKit::NPRuntimeObjectMap::evaluate): (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::jsWrapperForWorld): (WebKit::WebFrame::computedStyleIncludingVisitedInfo): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::runJavaScriptInMainFrame): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::getWebCoreStatistics): 2012-06-27 Thiago Marcos P. Santos REGRESSION(r121135): It made qmltests::WebViewColorChooser::test_accept() fail https://bugs.webkit.org/show_bug.cgi?id=89871 Reviewed by Simon Hausmann. Added proper event synchronization to the test case. * UIProcess/API/qt/tests/qmltests/WebView/tst_colorChooser.qml: 2012-06-27 Brady Eidson https://bugs.webkit.org/show_bug.cgi?id=87513 WebBackForwardList needs an overhaul to consistently and clearly handle error conditions. Reviewed by Darin Adler. - We think a null entry might somehow be getting in the list so we now try to prevent that. - We think a null entry might somehow be in the list so we now null check when indexing into m_entries. - A lot of index math - especially tracking "no current index" - was implicit or wrong. - Operating on a WebBackForwardList whose page has been closed is now an explicit no-op. - The session state data reading and writing code was fragile and needed an overhaul. - This includes adding a new V1 format of the session data that is easier to validate when reading back in. * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::~WebBackForwardList): (WebKit::WebBackForwardList::pageClosed): (WebKit::WebBackForwardList::addItem): (WebKit::WebBackForwardList::goToItem): (WebKit::WebBackForwardList::backListCount): (WebKit::WebBackForwardList::forwardListCount): (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit): (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit): (WebKit::WebBackForwardList::clear): * UIProcess/WebBackForwardList.h: (WebBackForwardList): * UIProcess/cf/WebBackForwardListCF.cpp: (WebKit::createEmptySessionHistoryDictionary): (WebKit::WebBackForwardList::createCFDictionaryRepresentation): (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): (WebKit::WebBackForwardList::restoreFromV0CFDictionaryRepresentation): (WebKit::WebBackForwardList::restoreFromV1CFDictionaryRepresentation): (WebKit::extractBackForwardListEntriesFromArray): 2012-06-27 Zan Dobersek [Gtk] Add support for the Gamepad API https://bugs.webkit.org/show_bug.cgi?id=87503 Reviewed by Carlos Garcia Campos. Add the Gamepad feature dependencies libraries to the LIBADD list for the libwebkitgtk2 library. * GNUmakefile.am: 2012-06-26 Simon Hausmann [Qt] Avoid use of deprecated Qt API Reviewed by Tor Arne Vestbø. QGuiApplication::inputPanel() has been deprecated in favour of inputMethod(). * UIProcess/qt/QtWebPageEventHandler.cpp: (WebKit::QtWebPageEventHandler::QtWebPageEventHandler): (WebKit::QtWebPageEventHandler::~QtWebPageEventHandler): (WebKit::setInputPanelVisible): (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged): (WebKit::QtWebPageEventHandler::updateTextInputState): 2012-06-26 Christophe Dumez [WK2][GTK] Uninitialized variable in TextCheckerGtk.cpp https://bugs.webkit.org/show_bug.cgi?id=89948 Reviewed by Martin Robinson. Properly initialize didInitializeState in TextChecker::state(). * UIProcess/gtk/TextCheckerGtk.cpp: (WebKit::TextChecker::state): 2012-06-25 Simon Hausmann [Qt] Make it possible to build WebKit without QtWidgets https://bugs.webkit.org/show_bug.cgi?id=78109 Reviewed by Tor Arne Vestbø. * WebKit2.pri: Add missing WK2 specific dependencies. * qt/MainQt.cpp: Do the QStyle initialization hook only if we are compiling with QtWidgets support. (WebKit): (main): 2012-06-25 Raphael Kubo da Costa [EFL][WK2] Include unistd.h in PlatformProcessIdentifier.h. https://bugs.webkit.org/show_bug.cgi?id=89804 Reviewed by Hajime Morita. The pid_t typedef ends up coming from stdlib.h (indirectly via WTF includes) on Mac and Linux, even though that is not mandated by POSIX and breaks other platforms (such as FreeBSD). Fix that by explicitly including unistd.h, which is where the typedef is supposed to come from. * Platform/PlatformProcessIdentifier.h: 2012-06-25 YoungTaeck Song [WK2][Qt][EFL] Extract common code from LayerTreeHostQt https://bugs.webkit.org/show_bug.cgi?id=89837 Reviewed by Noam Rosenthal. Extract common code from LayerTreeHostQt to be used by both Qt and Efl. I renamed LayerTreeHost to LayerTreeCoordinator, and these are moved under WebProcess/WebPage/LayerTreeCoordinator. I Modified LayerTreeHostProxy to LayerTreeCoordinatorProxy too, Because LayerTreeHostProxy and LayerTreeHost were pair. Also WebGraphicsLayer moved under that directory. * CMakeLists.txt: * DerivedSources.pri: * GNUmakefile.list.am: * Platform/CoreIPC/MessageID.h: * Target.pri: * UIProcess/API/qt/qquickwebpage.cpp: (QQuickWebPagePrivate::paint): (QQuickWebPage::updatePaintNode): (QQuickWebPagePrivate::updateSize): * UIProcess/DrawingAreaProxy.cpp: (WebKit::DrawingAreaProxy::didReceiveLayerTreeCoordinatorProxyMessage): * UIProcess/DrawingAreaProxy.h: (WebKit): (WebKit::DrawingAreaProxy::layerTreeCoordinatorProxy): (DrawingAreaProxy): * UIProcess/DrawingAreaProxyImpl.cpp: (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl): (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode): (WebKit::DrawingAreaProxyImpl::didReceiveLayerTreeCoordinatorProxyMessage): (WebKit::DrawingAreaProxyImpl::setVisibleContentsRect): * UIProcess/DrawingAreaProxyImpl.h: (WebKit): (DrawingAreaProxyImpl): * UIProcess/LayerTreeCoordinatorProxy.cpp: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.cpp. (WebKit): (WebKit::LayerTreeCoordinatorProxy::LayerTreeCoordinatorProxy): (WebKit::LayerTreeCoordinatorProxy::~LayerTreeCoordinatorProxy): (WebKit::LayerTreeCoordinatorProxy::updateViewport): (WebKit::LayerTreeCoordinatorProxy::dispatchUpdate): (WebKit::LayerTreeCoordinatorProxy::createTileForLayer): (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer): (WebKit::LayerTreeCoordinatorProxy::removeTileForLayer): (WebKit::LayerTreeCoordinatorProxy::deleteCompositingLayer): (WebKit::LayerTreeCoordinatorProxy::setRootCompositingLayer): (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerState): (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerChildren): (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerFilters): (WebKit::LayerTreeCoordinatorProxy::didRenderFrame): (WebKit::LayerTreeCoordinatorProxy::createDirectlyCompositedImage): (WebKit::LayerTreeCoordinatorProxy::destroyDirectlyCompositedImage): (WebKit::LayerTreeCoordinatorProxy::setContentsSize): (WebKit::LayerTreeCoordinatorProxy::setVisibleContentsRect): (WebKit::LayerTreeCoordinatorProxy::renderNextFrame): (WebKit::LayerTreeCoordinatorProxy::didChangeScrollPosition): (WebKit::LayerTreeCoordinatorProxy::syncCanvas): (WebKit::LayerTreeCoordinatorProxy::purgeBackingStores): * UIProcess/LayerTreeCoordinatorProxy.h: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.h. (WebKit): (LayerTreeCoordinatorProxy): (WebKit::LayerTreeCoordinatorProxy::layerTreeRenderer): * UIProcess/LayerTreeCoordinatorProxy.messages.in: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.messages.in. * UIProcess/WebLayerTreeRenderer.cpp: (WebKit::WebLayerTreeRenderer::WebLayerTreeRenderer): (WebKit::WebLayerTreeRenderer::updateViewport): (WebKit::WebLayerTreeRenderer::renderNextFrame): (WebKit::WebLayerTreeRenderer::purgeBackingStores): (WebKit::WebLayerTreeRenderer::detach): * UIProcess/WebLayerTreeRenderer.h: (WebKit): (WebLayerTreeRenderer): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didReceiveMessage): * WebKit2.pri: * WebProcess/WebPage/DrawingArea.h: (DrawingArea): * WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::didReceiveLayerTreeCoordinatorMessage): * WebProcess/WebPage/DrawingAreaImpl.h: (DrawingAreaImpl): * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp. (WebKit): (WebKit::LayerTreeCoordinator::create): (WebKit::LayerTreeCoordinator::~LayerTreeCoordinator): (WebKit::LayerTreeCoordinator::LayerTreeCoordinator): (WebKit::LayerTreeCoordinator::setLayerFlushSchedulingEnabled): (WebKit::LayerTreeCoordinator::scheduleLayerFlush): (WebKit::LayerTreeCoordinator::cancelPendingLayerFlush): (WebKit::LayerTreeCoordinator::setShouldNotifyAfterNextScheduledLayerFlush): (WebKit::LayerTreeCoordinator::setRootCompositingLayer): (WebKit::LayerTreeCoordinator::invalidate): (WebKit::LayerTreeCoordinator::setNonCompositedContentsNeedDisplay): (WebKit::LayerTreeCoordinator::scrollNonCompositedContents): (WebKit::LayerTreeCoordinator::forceRepaint): (WebKit::LayerTreeCoordinator::sizeDidChange): (WebKit::LayerTreeCoordinator::didInstallPageOverlay): (WebKit::LayerTreeCoordinator::didUninstallPageOverlay): (WebKit::LayerTreeCoordinator::setPageOverlayNeedsDisplay): (WebKit::LayerTreeCoordinator::setPageOverlayOpacity): (WebKit::LayerTreeCoordinator::flushPendingLayerChanges): (WebKit::LayerTreeCoordinator::syncLayerState): (WebKit::LayerTreeCoordinator::syncLayerChildren): (WebKit::LayerTreeCoordinator::syncCanvas): (WebKit::LayerTreeCoordinator::syncLayerFilters): (WebKit::LayerTreeCoordinator::attachLayer): (WebKit::LayerTreeCoordinator::detachLayer): (WebKit::updateOffsetFromViewportForSelf): (WebKit::updateOffsetFromViewportForLayer): (WebKit::LayerTreeCoordinator::syncFixedLayers): (WebKit::LayerTreeCoordinator::performScheduledLayerFlush): (WebKit::LayerTreeCoordinator::layerFlushTimerFired): (WebKit::LayerTreeCoordinator::createPageOverlayLayer): (WebKit::LayerTreeCoordinator::destroyPageOverlayLayer): (WebKit::LayerTreeCoordinator::adoptImageBackingStore): (WebKit::LayerTreeCoordinator::releaseImageBackingStore): (WebKit::LayerTreeCoordinator::notifyAnimationStarted): (WebKit::LayerTreeCoordinator::notifySyncRequired): (WebKit::LayerTreeCoordinator::paintContents): (WebKit::LayerTreeCoordinator::showDebugBorders): (WebKit::LayerTreeCoordinator::showRepaintCounter): (WebKit::LayerTreeHost::supportsAcceleratedCompositing): (WebKit::LayerTreeCoordinator::createTile): (WebKit::LayerTreeCoordinator::updateTile): (WebKit::LayerTreeCoordinator::removeTile): (WebKit::LayerTreeCoordinator::visibleContentsRect): (WebKit::LayerTreeCoordinator::setVisibleContentsRect): (WebKit::LayerTreeCoordinator::renderNextFrame): (WebKit::LayerTreeCoordinator::layerTreeTileUpdatesAllowed): (WebKit::LayerTreeCoordinator::purgeBackingStores): (WebKit::LayerTreeCoordinator::beginContentUpdate): * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h: Renamed from Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.h. (WebKit): (LayerTreeCoordinator): (WebKit::LayerTreeCoordinator::layerTreeContext): (WebKit::LayerTreeCoordinator::pageOverlayShouldApplyFadeWhenPainting): (WebKit::LayerTreeCoordinator::pauseRendering): (WebKit::LayerTreeCoordinator::resumeRendering): (WebKit::LayerTreeCoordinator::deviceScaleFactorDidChange): * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.messages.in: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeHost.messages.in. * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp. (WebCore): (WebCore::layerByIDMap): (WebCore::WebGraphicsLayer::layerByID): (WebCore::toWebLayerID): (WebCore::WebGraphicsLayer::didChangeLayerState): (WebCore::WebGraphicsLayer::didChangeChildren): (WebCore::WebGraphicsLayer::didChangeFilters): (WebCore::WebGraphicsLayer::setShouldUpdateVisibleRect): (WebCore::WebGraphicsLayer::didChangeGeometry): (WebCore::WebGraphicsLayer::WebGraphicsLayer): (WebCore::WebGraphicsLayer::~WebGraphicsLayer): (WebCore::WebGraphicsLayer::willBeDestroyed): (WebCore::WebGraphicsLayer::setChildren): (WebCore::WebGraphicsLayer::addChild): (WebCore::WebGraphicsLayer::addChildAtIndex): (WebCore::WebGraphicsLayer::addChildAbove): (WebCore::WebGraphicsLayer::addChildBelow): (WebCore::WebGraphicsLayer::replaceChild): (WebCore::WebGraphicsLayer::removeFromParent): (WebCore::WebGraphicsLayer::setPosition): (WebCore::WebGraphicsLayer::setAnchorPoint): (WebCore::WebGraphicsLayer::setSize): (WebCore::WebGraphicsLayer::setTransform): (WebCore::WebGraphicsLayer::setChildrenTransform): (WebCore::WebGraphicsLayer::setPreserves3D): (WebCore::WebGraphicsLayer::setMasksToBounds): (WebCore::WebGraphicsLayer::setDrawsContent): (WebCore::WebGraphicsLayer::setContentsOpaque): (WebCore::WebGraphicsLayer::setBackfaceVisibility): (WebCore::WebGraphicsLayer::setOpacity): (WebCore::WebGraphicsLayer::setContentsRect): (WebCore::WebGraphicsLayer::setContentsNeedsDisplay): (WebCore::WebGraphicsLayer::setContentsToCanvas): (WebCore::WebGraphicsLayer::setFilters): (WebCore::WebGraphicsLayer::setContentsToImage): (WebCore::WebGraphicsLayer::setMaskLayer): (WebCore::WebGraphicsLayer::setReplicatedByLayer): (WebCore::WebGraphicsLayer::setNeedsDisplay): (WebCore::WebGraphicsLayer::setNeedsDisplayInRect): (WebCore::WebGraphicsLayer::id): (WebCore::WebGraphicsLayer::syncCompositingState): (WebCore::toWebGraphicsLayer): (WebCore::WebGraphicsLayer::syncChildren): (WebCore::WebGraphicsLayer::syncFilters): (WebCore::WebGraphicsLayer::syncLayerState): (WebCore::WebGraphicsLayer::syncCanvas): (WebCore::WebGraphicsLayer::ensureImageBackingStore): (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly): (WebCore::WebGraphicsLayer::tiledBackingStorePaintBegin): (WebCore::WebGraphicsLayer::setRootLayer): (WebCore::WebGraphicsLayer::setVisibleContentRectTrajectoryVector): (WebCore::WebGraphicsLayer::setContentsScale): (WebCore::WebGraphicsLayer::effectiveContentsScale): (WebCore::WebGraphicsLayer::adjustContentsScale): (WebCore::WebGraphicsLayer::createBackingStore): (WebCore::WebGraphicsLayer::tiledBackingStorePaint): (WebCore::WebGraphicsLayer::tiledBackingStorePaintEnd): (WebCore::WebGraphicsLayer::tiledBackingStoreUpdatesAllowed): (WebCore::WebGraphicsLayer::tiledBackingStoreContentsRect): (WebCore::WebGraphicsLayer::shouldUseTiledBackingStore): (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect): (WebCore::WebGraphicsLayer::tiledBackingStoreBackgroundColor): (WebCore::WebGraphicsLayer::beginContentUpdate): (WebCore::WebGraphicsLayer::createTile): (WebCore::WebGraphicsLayer::updateTile): (WebCore::WebGraphicsLayer::removeTile): (WebCore::WebGraphicsLayer::updateContentBuffers): (WebCore::WebGraphicsLayer::purgeBackingStores): (WebCore::WebGraphicsLayer::setWebGraphicsLayerClient): (WebCore::WebGraphicsLayer::adjustVisibleRect): (WebCore::WebGraphicsLayer::computeTransformedVisibleRect): (WebCore::createWebGraphicsLayer): (WebCore::WebGraphicsLayer::initFactory): (WebCore::WebGraphicsLayer::selfOrAncestorHaveNonAffineTransforms): * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.h. (WebCore): (WebKit): (WebGraphicsLayerClient): (WebGraphicsLayer): (WebCore::WebGraphicsLayer::image): (WebCore::WebGraphicsLayer::fixedToViewport): (WebCore::WebGraphicsLayer::setFixedToViewport): (WebCore::WebGraphicsLayer::maskTarget): (WebCore::WebGraphicsLayer::setMaskTarget): * WebProcess/WebPage/LayerTreeHost.cpp: (WebKit::LayerTreeHost::create): * WebProcess/WebPage/LayerTreeHost.h: (LayerTreeHost): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didReceiveMessage): 2012-06-25 Anders Carlsson [Lion WK2] fast/loader/reload-zero-byte-plugin.html hits assert https://bugs.webkit.org/show_bug.cgi?id=89611 Reviewed by Sam Weinig. Make sure to send the response along to the plug-in in the case where the stream was empty. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::finishedLoading): 2012-06-25 YoungTaeck Song [WK2][Qt][EFL] Move LayerBackingStore into common directory https://bugs.webkit.org/show_bug.cgi?id=89838 Reviewed by Noam Rosenthal. Move LayerBackingStore into 'Source/WebKit2/UIProcess/texmap' to be used by both Qt and Efl. * Target.pri: * UIProcess/texmap/LayerBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp. (WebKit): (WebKit::LayerBackingStoreTile::swapBuffers): (WebKit::LayerBackingStoreTile::setBackBuffer): (WebKit::LayerBackingStore::createTile): (WebKit::LayerBackingStore::removeTile): (WebKit::LayerBackingStore::updateTile): (WebKit::LayerBackingStore::texture): (WebKit::LayerBackingStore::paintToTextureMapper): (WebKit::LayerBackingStore::commitTileOperations): * UIProcess/texmap/LayerBackingStore.h: Renamed from Source/WebKit2/UIProcess/qt/LayerBackingStore.h. (WebKit): (LayerBackingStoreTile): (WebKit::LayerBackingStoreTile::LayerBackingStoreTile): (WebKit::LayerBackingStoreTile::scale): (LayerBackingStore): (WebKit::LayerBackingStore::create): (WebKit::LayerBackingStore::LayerBackingStore): 2012-06-25 Carlos Garcia Campos [GTK] Test /webkit2/WebKitWebView/permission-requests fails due to a runtime warning https://bugs.webkit.org/show_bug.cgi?id=89858 Reviewed by Xan Lopez. * UIProcess/API/gtk/tests/TestWebKitWebView.cpp: (testWebViewPermissionRequests): Make runtime warnings non-fatal for test /webkit2/WebKitWebView/permission-requests. 2012-06-25 Huang Dongsung [GTK] Remove unused code in LayerTreeHostGtk. https://bugs.webkit.org/show_bug.cgi?id=89854 LayerTreeHostGtk::deviceScaleFactor() is unused and LayerTreeHost does not have virtual float deviceScaleFactor() const; Reviewed by Martin Robinson. * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: (LayerTreeHostGtk): 2012-06-24 Andreas Kling REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages. Unreviewed tests assertion fix, handleKeyboardEvent() should call didReceiveKeyEvent() rather than didReceiveEvent(). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleKeyboardEvent): (WebKit::WebPageProxy::didReceiveKeyEvent): 2012-06-24 YoungTaeck Song [WK2][Qt][EFL] Modify Qt specific code to common code https://bugs.webkit.org/show_bug.cgi?id=89839 Reviewed by Noam Rosenthal. Modify paintToGraphicsContext’s first argument QPainter to PlatformGraphicsContext to be used by both Qt and Efl. * UIProcess/WebLayerTreeRenderer.cpp: (WebKit::WebLayerTreeRenderer::paintToGraphicsContext): 2012-06-24 Simon Fraser Rename isPositioned to isOutOfFlowPositioned for clarity https://bugs.webkit.org/show_bug.cgi?id=89836 Reviewed by Antti Koivisto. RenderObject and RenderStyle had an isPositioned() method that was confusing, because it excluded relative positioning. Rename to isOutOfFlowPositioned(), which makes it clearer that it only applies to absolute and fixed positioning. Simple rename; no behavior change. * WebProcess/WebPage/qt/LayerTreeHostQt.cpp: (WebKit::updateOffsetFromViewportForSelf): 2012-06-24 Andreas Kling REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages. Reviewed by Sam Weinig. Instead of sending DidReceiveEvent for key events as DispatchMessageEvenWhenWaitingForSyncReply, use proper synchronous messages. This makes the WebProcess block while the UIProcess handles the event but prevents a weird race condition where DidReceiveEvent gets dispatched just before a synchronous DecidePolicyForNavigationAction and something happens below DidReceiveEvent that invalidates the frame ID passed to DecidePolicyForNavigationAction. This is a speculative fire-fighting fix. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didReceiveKeyEvent): (WebKit::WebPageProxy::didReceiveEvent): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::keyEvent): 2012-06-23 Sheriff Bot Unreviewed, rolling out r121058. http://trac.webkit.org/changeset/121058 https://bugs.webkit.org/show_bug.cgi?id=89809 Patch causes plugins tests to crash in GTK debug builds (Requested by zdobersek on #webkit). * Shared/mac/WebMemorySampler.mac.mm: (WebKit::WebMemorySampler::sampleWebKit): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::javaScriptObjectsCount): (WebKit::InjectedBundle::reportException): * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::callMethod): (WebKit::JSNPObject::callObject): (WebKit::JSNPObject::callConstructor): (WebKit::JSNPObject::put): (WebKit::JSNPObject::deleteProperty): (WebKit::JSNPObject::getOwnPropertyNames): (WebKit::JSNPObject::propertyGetter): * WebProcess/Plugins/Netscape/NPJSObject.cpp: (WebKit::NPJSObject::hasMethod): (WebKit::NPJSObject::invoke): (WebKit::NPJSObject::invokeDefault): (WebKit::NPJSObject::hasProperty): (WebKit::NPJSObject::getProperty): (WebKit::NPJSObject::setProperty): (WebKit::NPJSObject::removeProperty): (WebKit::NPJSObject::enumerate): (WebKit::NPJSObject::construct): * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): (WebKit::NPRuntimeObjectMap::evaluate): (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::jsWrapperForWorld): (WebKit::WebFrame::computedStyleIncludingVisitedInfo): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::runJavaScriptInMainFrame): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::getWebCoreStatistics): 2012-06-23 Zan Dobersek Unreviewed build fix for GTK's WebKit2 build after r121093. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewPopulateContextMenu): 2012-06-23 Carlos Garcia Campos Unreviewed. Fix several GTK+ unit tests. GTK+ unit tests using WebViewTest::wait() started to fail due to a bug introduced in r121093. * UIProcess/API/gtk/tests/WebViewTest.cpp: (WebViewTest::wait): Use this instead of m_mainLoop as user data for the idle callback. 2012-06-23 Carlos Garcia Campos [GTK] Add ContextMenu API to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=81011 Reviewed by Martin Robinson. Add WebKitWebView::context-menu signal and WebKitContextMenu and WebKitContextMenuItem objects to customize the default menu or buils new menus. * GNUmakefile.list.am: Add new files to destination. * UIProcess/API/gtk/WebKitContextMenu.cpp: Added. (webkitContextMenuFinalize): (webkit_context_menu_init): (webkit_context_menu_class_init): (webkitContextMenuPopulate): Populate the given vector of ContextMenuItems with the WebKitContextMenu items releasing the items added to the vector. (webkitContextMenuCreate): Create a new WebKitContextMenu for the given WKArrayRef of WKContextMenuItemRef. (webkitContextMenuSetParentItem): Set the parent menu item of the menu. Used when a menu is added as a submenu of a menu item. (webkitContextMenuGetParentItem): Return the parent menu item of the menu. (webkit_context_menu_new): Create a new WebKitContextMenu. (webkit_context_menu_new_with_items): Create a new WebKitContextMenu using the given list of WebKitContextMenuItem. (webkit_context_menu_prepend): Add item at the beginning. (webkit_context_menu_append): Add item at the end. (webkit_context_menu_insert): Insert item at a random position. (webkit_context_menu_move_item): Move an existing item to a new position. (webkit_context_menu_get_items): Get the list of items. (webkit_context_menu_get_n_items): Get the number of items. (webkit_context_menu_first): Get the first item. (webkit_context_menu_last): Get the last item. (webkit_context_menu_get_item_at_position): Get the item at the given position. (webkit_context_menu_remove): Remove the given item. (webkit_context_menu_remove_all): Remove all items. * UIProcess/API/gtk/WebKitContextMenu.h: Added. * UIProcess/API/gtk/WebKitContextMenuActions.cpp: Added. (webkitContextMenuActionIsCheckable): Check if the given stock action is a toggle action. (webkitContextMenuActionGetActionTag): Get the WebCore ContextMenuAction corresponding to the given stock action. (webkitContextMenuActionGetForContextMenuItem): Get the stock action corresponding to the given WebCore ContextMenuAction. (webkitContextMenuActionGetLabel): Get the label string of the given stock action. * UIProcess/API/gtk/WebKitContextMenuActions.h: Added. * UIProcess/API/gtk/WebKitContextMenuActionsPrivate.h: Added. * UIProcess/API/gtk/WebKitContextMenuItem.cpp: Added. (webkitContextMenuItemFinalize): (webkit_context_menu_item_init): (webkit_context_menu_item_class_init): (checkAndWarnIfMenuHasParentItem): Check whether the given menu is already inside another menu showing a warning in such case. (webkitContextMenuItemSetSubMenu): Set the submenu of a menu item, checking that the menu is not part of another menu and setting the item as the parent of the submenu. (webkitContextMenuItemCreate): Create a new WebKitContextMenuItem for the given WKContextMenuItemRef. (webkitContextMenuItemCreateForGtkItem): Create a new WebKitContextMenuItem using the given GtkMenuItem. (webkitContextMenuItemSetSubMenuFromGtkMenu): Set the given GtkMenu as submenu of the item. This is used only to add Input Methods submenu that is created by GTK. (webkitContextMenuItemRelease): Release the WebCore ContextMenuItem associated to the item. (webkit_context_menu_item_new): Create a new WebKitContextMenuItem for the given GtkAction. (webkit_context_menu_item_new_from_stock_action): Create a new WebKitContextMenuItem for a stock action. (webkit_context_menu_item_new_from_stock_action_with_label): Create a new WebKitContextMenuItem for a stock action using a custom label. (webkit_context_menu_item_new_with_submenu): Create a new WebKitContextMenuItem with a submenu. (webkit_context_menu_item_new_separator): Create a new separator menu item. (webkit_context_menu_item_get_action): Get the GtkAction of the item. (webkit_context_menu_item_get_stock_action): Get the stock action of the item. (webkit_context_menu_item_is_separator): Whether item is a separator. (webkit_context_menu_item_set_submenu): Set or replace the submenu of the item. (webkit_context_menu_item_get_submenu): Get the submenu of the item. * UIProcess/API/gtk/WebKitContextMenuItem.h: Added. * UIProcess/API/gtk/WebKitContextMenuItemPrivate.h: Added. * UIProcess/API/gtk/WebKitContextMenuPrivate.h: Added. * UIProcess/API/gtk/WebKitDefines.h: * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_class_init): Add WebKitWebView::context-menu signal. (getUnicodeMenuItemPosition): Helper function that returns the position of the unicode menu item in the proposed context menu. (webkitWebViewCreateAndAppendInputMethodsMenuItem): Use WebKitContextMenu API to add the input methods submenu to the default context menu. (webkitWebViewPopulateContextMenu): Create a WebKitContextMenu for the default context menu and emit WebKitWebView::context-menu signal. Then populate the context menu proxy with the resulting WebKitContextMenu. * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseButtonPressEvent): In case of right click save the event to be used by context menu signal. (webkitWebViewBaseTakeContextMenuEvent): Return and release the saved button event. * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add sections for WebKitContextMenu and WebKitContextMenuItem. * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols. * UIProcess/API/gtk/docs/webkit2gtk.types: Add webkit_context_menu_get_type and webkit_context_menu_item_get_type. * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for context menu. * UIProcess/API/gtk/tests/TestContextMenu.cpp: Added. (testContextMenuDefaultMenu): (testContextMenuPopulateMenu): (testContextMenuCustomMenu): (testContextMenuDisableMenu): (testContextMenuSubMenu): (beforeAll): (afterAll): * UIProcess/API/gtk/tests/TestMain.h: (Test::addLogFatalFlag): Add a log level flag to the mask of flags causing the program to abort. (Test::removeLogFatalFlag): Remove a log level flag to the mask of flags causing the program to abort. * UIProcess/API/gtk/tests/WebViewTest.cpp: (WebViewTest::quitMainLoop): Finish the main loop. (WebViewTest::quitMainLoopAfterProcessingPendingEvents): Finish the main loop when all pending events have been processed. (quitMainLoopIdleCallback): (WebViewTest::wait): * UIProcess/API/gtk/tests/WebViewTest.h: * UIProcess/API/gtk/webkit2.h: Include WebKitContextMenu.h, WebKitContextMenuItem.h and WebKitContextMenuActions.h. * UIProcess/API/gtk/webkit2marshal.list: * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::WebContextMenuProxyGtk::showContextMenu): Attach the popup menu to the view widget before showing it. 2012-06-22 Alexandru Chiculita [CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac https://bugs.webkit.org/show_bug.cgi?id=89781 Reviewed by Dean Jackson. Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac. * Configurations/FeatureDefines.xcconfig: 2012-06-22 Ryuan Choi [EFL][WK2] Support keyboard event https://bugs.webkit.org/show_bug.cgi?id=89268 Reviewed by Chang Shu. * WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp: (WebKit::WebEditorClient::handleKeyboardEvent): Implemented default behavior. * WebProcess/WebPage/efl/WebPageEfl.cpp: (WebKit::WebPage::interpretKeyEvent): Implemented like WebKit1/Efl did. 2012-06-20 Mark Hahnenberg JSLock should be per-JSGlobalData https://bugs.webkit.org/show_bug.cgi?id=89123 Reviewed by Gavin Barraclough. Changed all sites that used JSLock to instead use the new JSLockHolder and pass in the correct JS context that the code is about to interact with that needs protection. * Shared/mac/WebMemorySampler.mac.mm: (WebKit::WebMemorySampler::sampleWebKit): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::javaScriptObjectsCount): (WebKit::InjectedBundle::reportException): * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::callMethod): (WebKit::JSNPObject::callObject): (WebKit::JSNPObject::callConstructor): (WebKit::JSNPObject::put): (WebKit::JSNPObject::deleteProperty): (WebKit::JSNPObject::getOwnPropertyNames): (WebKit::JSNPObject::propertyGetter): * WebProcess/Plugins/Netscape/NPJSObject.cpp: (WebKit::NPJSObject::hasMethod): (WebKit::NPJSObject::invoke): (WebKit::NPJSObject::invokeDefault): (WebKit::NPJSObject::hasProperty): (WebKit::NPJSObject::getProperty): (WebKit::NPJSObject::setProperty): (WebKit::NPJSObject::removeProperty): (WebKit::NPJSObject::enumerate): (WebKit::NPJSObject::construct): * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): (WebKit::NPRuntimeObjectMap::evaluate): (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::jsWrapperForWorld): (WebKit::WebFrame::computedStyleIncludingVisitedInfo): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::runJavaScriptInMainFrame): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::getWebCoreStatistics): 2012-06-22 Jocelyn Turcotte [Qt] Fix the remote inspector loading problems on Mac https://bugs.webkit.org/show_bug.cgi?id=89747 Reviewed by Simon Hausmann. Reverse the creation order of the inter-dependent WebSocketServerConnection and SocketStreamHandle to make sure that the later has a client properly set on construction. This is to work around the assert on m_state in SocketStreamHandle::setClient. * UIProcess/InspectorServer/WebSocketServer.cpp: (WebKit::WebSocketServer::didAcceptConnection): * UIProcess/InspectorServer/WebSocketServer.h: (WebKit::WebSocketServer::client): (WebSocketServer): * UIProcess/InspectorServer/WebSocketServerConnection.cpp: (WebKit::WebSocketServerConnection::WebSocketServerConnection): (WebKit::WebSocketServerConnection::setSocketHandle): (WebKit): * UIProcess/InspectorServer/WebSocketServerConnection.h: (WebSocketServerConnection): * UIProcess/InspectorServer/qt/WebSocketServerQt.cpp: (WebKit::QtTcpServerHandler::handleNewConnection): 2012-06-22 Sergio Villar Senin [WK2] FindController::hideFindUI should unmark highlighted text matches https://bugs.webkit.org/show_bug.cgi?id=77747 Reviewed by Carlos Garcia Campos. Unmark all text matches whenever FindController::hideFindUI is called to allow callers using the ShowHighlight find option to remove highlighting. This patch enables a unit test for the WebKitFindController previously guarded by a #if(0) after r109222. * UIProcess/API/gtk/tests/TestWebKitFindController.cpp: (testFindControllerHide): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::hideFindUI): 2012-06-21 Christophe Dumez [WK2] Add C API to inspect a Web Intent https://bugs.webkit.org/show_bug.cgi?id=89275 Reviewed by Anders Carlsson. Add C API for Web Intent so that it can be queried on client side. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * UIProcess/API/C/WKIntentData.cpp: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp. (WKIntentDataGetTypeID): (WKIntentDataCopyAction): (WKIntentDataCopyType): (WKIntentDataCopyService): (WKIntentDataCopySuggestions): (WKIntentDataCopyExtra): (WKIntentDataCopyExtras): * UIProcess/API/C/WKIntentData.h: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp. * UIProcess/WebIntentData.cpp: (WebKit::WebIntentData::suggestions): (WebKit): (WebKit::WebIntentData::extra): (WebKit::WebIntentData::extras): * UIProcess/WebIntentData.h: (WebIntentData): 2012-06-21 Christophe Dumez [WK2] Properly encode/decode service in IntentData https://bugs.webkit.org/show_bug.cgi?id=89460 Reviewed by Gustavo Noronha Silva. Update IntentData::encode() and IntentData::decode() so that the "service" member is properly encoded and decoded. * Shared/IntentData.cpp: (WebKit::IntentData::encode): (WebKit::IntentData::decode): 2012-06-21 Ryuan Choi [EFL][WK2] Make WebKit2/Efl headers and resources installable. https://bugs.webkit.org/show_bug.cgi?id=88207 Reviewed by Chang Shu. * CMakeLists.txt: Install WebProcess. * PlatformEfl.cmake: Generate ewebkit2.pc and install it. * efl/ewebkit2.pc.in: Added. 2012-06-21 Ryuan Choi [EFL[WK2] Add WKViewEfl and WebKit2 API Object to represent Evas_Object. https://bugs.webkit.org/show_bug.cgi?id=88935 Reviewed by Chang Shu. Add WKViewEfl to support WTR/Efl. * PlatformEfl.cmake: * Shared/API/c/WKBase.h: * Shared/API/c/efl/WKBaseEfl.h: Added. * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/efl/WKAPICastEfl.h: Added. (WebKit): * UIProcess/API/C/efl/WKView.cpp: Added. (WKViewCreate): (WKViewGetPage): * UIProcess/API/C/efl/WKView.h: Added. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_page_get): * UIProcess/API/efl/ewk_view_private.h: 2012-06-21 Thiago Marcos P. Santos [Qt] API tests for ColorChooser https://bugs.webkit.org/show_bug.cgi?id=88101 Reviewed by Kenneth Rohde Christiansen. The test uses the value sanitization to detect if the feature is enabled or disabled and will just pass when disabled. * UIProcess/API/qt/tests/qmltests/WebView/tst_colorChooser.qml: Added. * UIProcess/API/qt/tests/qmltests/common/colorChooser.html: Added. 2012-06-21 Thiago Marcos P. Santos [WK2][Qt] Color chooser API missing https://bugs.webkit.org/show_bug.cgi?id=87749 Reviewed by Kenneth Rohde Christiansen. Added public experimental API for ColorChooser. This will allow the browser to define a custom dialog for selecting color when a input field of type "color" get focus. The current implementation gives a model to the QML Component that has methods for canceling a request, selecting a color and fetching what is the current value of the HTML input. * Target.pri: * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::QQuickWebViewPrivate): (QQuickWebViewExperimental::colorChooser): (QQuickWebViewExperimental::setColorChooser): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): * UIProcess/qt/QtPageClient.cpp: (WebKit::QtPageClient::createColorChooserProxy): * UIProcess/qt/WebColorChooserProxyQt.cpp: Added. (WebKit): (ColorChooserContextObject): (WebKit::ColorChooserContextObject::ColorChooserContextObject): (WebKit::ColorChooserContextObject::currentColor): (WebKit::ColorChooserContextObject::accept): (WebKit::ColorChooserContextObject::reject): (WebKit::WebColorChooserProxyQt::WebColorChooserProxyQt): (WebKit::WebColorChooserProxyQt::~WebColorChooserProxyQt): (WebKit::WebColorChooserProxyQt::createItem): (WebKit::WebColorChooserProxyQt::createContext): (WebKit::WebColorChooserProxyQt::setSelectedColor): (WebKit::WebColorChooserProxyQt::notifyColorSelected): (WebKit::WebColorChooserProxyQt::endChooser): * UIProcess/qt/WebColorChooserProxyQt.h: Added. (WebCore): (WebKit): (WebColorChooserProxyQt): (WebKit::WebColorChooserProxyQt::create): 2012-06-21 Mario Sanchez Prada [GTK] Add support for window.showModalDialog in WebKit2GTK+ https://bugs.webkit.org/show_bug.cgi?id=79500 Reviewed by Carlos Garcia Campos. Implement runModal in WebKitUIClient to make the WebKitWebView emit a 'run-as-modal' signal when requested, creating a new mainloop there to block user interaction with the original window while the modal dialog is showing. * UIProcess/API/gtk/WebKitUIClient.cpp: (runModal): Call to the new webkitWebViewRunAsModalPage function. (attachUIClientToView): Add runModal. * UIProcess/API/gtk/WebKitWebView.cpp: (_WebKitWebViewPrivate): Add an atribute for a new main loop. (webkitWebViewFinalize): Make sure the main loop for main dialogs, if any, is stopped if it was still running. (webkit_web_view_class_init): Declare new signal 'run-as-modal'. (webkitWebViewRunAsModal): Emit the 'run-as-modal' signal and, if handled, create and run a new main loop. * UIProcess/API/gtk/WebKitWebView.h: (_WebKitWebViewClass): New handler for the 'run-as-modal' signal. * UIProcess/API/gtk/WebKitWebViewPrivate.h: Add webkitWebViewRunAsModalPage. Allow setting and getting the value of WebPage's canRunModal attribute in the WebProcess from the UIProcess after the creation of a WebPage, to allow using it from WebKitWebView to allow the client application to decide whether to allow create modal dialogs, which would result in launching an additional nested event loop in the web process, after creating the dialog. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): Initialize the new m_canRunModal attribute, to cache the current status of the WebPage in the WebProcess. (WebKit::WebPageProxy::initializeUIClient): Call the new function setCanRunModal, instead of manually sending the SetCanRunModal message. (WebKit::WebPageProxy::creationParameters): Use m_canRunModal instead of m_uiClient.canRunModal when preparing the parameters. (WebKit::WebPageProxy::setCanRunModal): New public function, it sets the value of m_canRunModal and sends a message to the Web process for updating the WebPage, whenever possible. (WebKit::WebPageProxy::canRunModal): New public function, returns the value of the m_canRunModal attribute. * UIProcess/WebPageProxy.h: (WebPageProxy): Added new public functions and private attribute. New property in WebKitSettings to be able to decide whether it is allowed to create and run new child webviews as modal dialogs. * UIProcess/API/gtk/WebKitSettings.cpp: (_WebKitSettingsPrivate): New attribute allowModalDialogs. (webKitSettingsSetProperty): Handle the new property. (webKitSettingsGetProperty): Ditto. (webkit_settings_class_init): Install the new property. (webkitSettingsAttachSettingsToPage): Make sure the WebPage is initialized with the value of the new property. (webkit_settings_set_allow_modal_dialogs): New setter. (webkit_settings_get_allow_modal_dialogs): New getter. * UIProcess/API/gtk/WebKitSettings.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new accessors. Connect to the 'notify::allow-modal-dialogs' signal from WebKitSettings to ensure that canRunModal property of the WebPage is kept up to date. Ensure that signal handlers for monitoring settings are disconnected when the webview is finalized. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewSetSettings): Connect to the new signal 'notify::allow-modal-dialogs', from WebKitSettings. (allowModalDialogsChanged): Callback to update WebPage's canRunModal property when updated through WebKitSettings. (webkitWebViewDisconnectSettingsSignalHandlers): Disconnect signal handlers for monitoring WebKitSettings properties. (webkitWebViewFinalize): Ensure signal handlers are disconnected. (webkit_web_view_set_settings): Ditto. * UIProcess/API/gtk/WebKitWebView.h: Add new unit tests to check the 'run-as-modal' signal is emitted only when the new property in WebKitSettings is set to TRUE. * UIProcess/API/gtk/tests/TestWebKitWebView.cpp: (testWebViewAllowModalDialogs): New unit test to check that modal dialogs are properly created from JavaScript when allowed. (testWebViewDisallowModalDialogs): New unit test to check that it's not possible to create modal dialogs when not allowed. (beforeAll): Add the new unit test. 2012-06-20 Thiago Marcos P. Santos [WK2] Color chooser API missing https://bugs.webkit.org/show_bug.cgi?id=87495 Reviewed by Andreas Kling. Added ColorChooser API to WebKit2. This API allows the embedder to define a custom color picker for . Only one ColorChooser can be active for a page at a time. Although the implementation doesn't not assume a modal dialog, no other color chooser will be created until the active one is closed. Also added stubs for all platforms, so it wont break the build when enabling color chooser, even though they don't have the backend implemented yet. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * UIProcess/API/efl/PageClientImpl.cpp: (WebKit): (WebKit::PageClientImpl::createColorChooserProxy): * UIProcess/API/efl/PageClientImpl.h: (PageClientImpl): * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit): (WebKit::PageClientImpl::createColorChooserProxy): * UIProcess/API/gtk/PageClientImpl.h: (PageClientImpl): * UIProcess/API/mac/PageClientImpl.h: (PageClientImpl): * UIProcess/API/mac/PageClientImpl.mm: (WebKit): (WebKit::PageClientImpl::createColorChooserProxy): * UIProcess/PageClient.h: (WebKit): (PageClient): * UIProcess/WebColorChooserProxy.h: Added. (WebCore): (WebKit): (WebColorChooserProxy): (Client): (WebKit::WebColorChooserProxy::Client::~Client): (WebKit::WebColorChooserProxy::~WebColorChooserProxy): (WebKit::WebColorChooserProxy::invalidate): (WebKit::WebColorChooserProxy::WebColorChooserProxy): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::close): (WebKit): (WebKit::WebPageProxy::showColorChooser): (WebKit::WebPageProxy::setColorChooserColor): (WebKit::WebPageProxy::endColorChooser): (WebKit::WebPageProxy::didChooseColor): (WebKit::WebPageProxy::didEndColorChooser): (WebKit::WebPageProxy::processDidCrash): * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/WebPageProxy.messages.in: * UIProcess/qt/QtPageClient.cpp: (WebKit): (WebKit::QtPageClient::createColorChooserProxy): * UIProcess/qt/QtPageClient.h: (QtPageClient): * UIProcess/win/WebView.cpp: (WebKit): (WebKit::WebView::createColorChooserProxy): * UIProcess/win/WebView.h: (WebView): * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createColorChooser): * WebProcess/WebCoreSupport/WebColorChooser.cpp: Added. (WebKit): (WebKit::WebColorChooser::WebColorChooser): (WebKit::WebColorChooser::~WebColorChooser): (WebKit::WebColorChooser::didChooseColor): (WebKit::WebColorChooser::didEndChooser): (WebKit::WebColorChooser::disconnectFromPage): (WebKit::WebColorChooser::setSelectedColor): (WebKit::WebColorChooser::endChooser): * WebProcess/WebCoreSupport/WebColorChooser.h: Added. (WebCore): (WebKit): (WebColorChooser): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::close): (WebKit): (WebKit::WebPage::setActiveColorChooser): (WebKit::WebPage::didEndColorChooser): (WebKit::WebPage::didChooseColor): * WebProcess/WebPage/WebPage.h: (WebKit): (WebPage): (WebKit::WebPage::activeColorChooser): * WebProcess/WebPage/WebPage.messages.in: * win/WebKit2.vcproj: 2012-06-20 Brady Eidson and https://bugs.webkit.org/show_bug.cgi?id=89590 showModalDialog message handling is flaky in WebKit2 Because RunLoop::performWork() swaps the function queue to a temporary Vector before calling the functions an inner run-loop - such as we see with running a modal dialog - does not have a change to handle any of the functions that were queued after the WebPageProxy::RunModal message. By servicing the functions in the queue one at a time we can give the RunLoop a chance to pick up where it left off if RunLoop::performWork is re-entered. To guarantee RunLoop::performWork is re-entered to handle those functions we also need to signal its source before entering the modal run loop so our RunLoop is woken up. Reviewed by Darin Adler. * Platform/CoreIPC/Connection.cpp: (CoreIPC::Connection::wakeUpRunLoop): Added so the WebPageProxy can signal the runloop to be woken up before it enters the modal dialog run loop. * Platform/CoreIPC/Connection.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runModal): Call wakeUpRunLoop() before entering the modal dialog run loop. 2012-06-20 Julien Chaffraix Use IntSize in RenderLayer to represent scroll offsets https://bugs.webkit.org/show_bug.cgi?id=89154 Reviewed by Eric Seidel. * WebProcess/WebPage/win/WebPageWin.cpp: (WebKit::WebPage::gestureDidScroll): Updated to pass an IntSize to scrollByRecursively. 2012-06-20 Christophe Dumez [WK2] Implement Web Intent delivery https://bugs.webkit.org/show_bug.cgi?id=88989 Reviewed by Anders Carlsson. Add a deliverIntent() method to the WebFrame so that Web intents can be delivered once matched to a specific service. * UIProcess/WebFrameProxy.cpp: (WebKit): (WebKit::WebFrameProxy::deliverIntent): * UIProcess/WebFrameProxy.h: (WebKit): (WebFrameProxy): * UIProcess/WebIntentData.h: (WebKit::WebIntentData::store): * WebProcess/WebPage/WebFrame.cpp: (WebKit): (WebKit::WebFrame::deliverIntent): * WebProcess/WebPage/WebFrame.h: (WebKit): (WebFrame): * WebProcess/WebPage/WebPage.cpp: (WebKit): (WebKit::WebPage::deliverIntentToFrame): * WebProcess/WebPage/WebPage.h: (WebKit): (WebPage): * WebProcess/WebPage/WebPage.messages.in: 2012-06-20 Alexis Menard REGRESSION (120705) : LayerTreeHostQt asserts in debug. https://bugs.webkit.org/show_bug.cgi?id=89487 Reviewed by Noam Rosenthal. We try to call createHandle twice on the same handle when the first matching atlas is full. This patch solved the problem by moving the createHandle call inside UpdateAtlas and call createHandle only when the atlas is not full. We can also remove the surface() getter as it is not used anymore. * WebProcess/WebPage/UpdateAtlas.cpp: (WebKit::UpdateAtlas::beginPaintingOnAvailableBuffer): * WebProcess/WebPage/UpdateAtlas.h: (UpdateAtlas): * WebProcess/WebPage/qt/LayerTreeHostQt.cpp: (WebKit::LayerTreeHostQt::beginContentUpdate): 2012-06-19 Ryuan Choi [EFL][Regression] Build break after r120786 https://bugs.webkit.org/show_bug.cgi?id=89549 Unreviewed build fix for Efl port. * CMakeLists.txt: Added disassembler in includes. 2012-06-19 Dan Bernstein WebKit2 part of: Paginated display API doesn’t allow setting the page progression direction https://bugs.webkit.org/show_bug.cgi?id=89394 Reviewed by Darin Adler. * UIProcess/API/C/WKPage.cpp: (WKPageSetPaginationMode): Changed to map new WKPaginationMode values to new Pagination::Mode values. (WKPageGetPaginationMode): Similarly, in the opposite direction. * UIProcess/API/C/WKPagePrivate.h: Replaced WKPaginationMode values with ones that specify an axis and a direction along that axis. * UIProcess/API/mac/WKBrowsingContextController.mm: (-[WKBrowsingContextController setPaginationMode:]): Changed to handle new values. (-[WKBrowsingContextController paginationMode]): Ditto. * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h: Replaced WKBrowsingContextPaginationMode values with ones that specify an axis and a direction along that axis. 2012-06-19 Alexis Menard [Qt] Create an extra atlas when there is no available buffer space. https://bugs.webkit.org/show_bug.cgi?id=89012 Reviewed by Noam Rosenthal. In case of the desktop mode when we scroll the view all the tiles are updated. It can happen that there no available buffer space for the currently used atlas(especially when scrolling fast). In that case we can create a new one. One future improvement could be to make a timer and delete this extra atlas when it is not used. * WebProcess/WebPage/qt/LayerTreeHostQt.cpp: (WebKit::beginContentUpdateInAtlas): (WebKit::LayerTreeHostQt::beginContentUpdate): * WebProcess/WebPage/qt/LayerTreeHostQt.h: (LayerTreeHostQt): 2012-06-19 Csaba Osztrogonác [Qt] Buildfix for newer Qt5, use QPointer instead of the deprecated QWeakPointer. https://bugs.webkit.org/show_bug.cgi?id=89449 Reviewed by Simon Hausmann. * UIProcess/API/qt/qquicknetworkreply_p.h: 2012-06-19 Mike West Introduce ENABLE_CSP_NEXT configuration flag. https://bugs.webkit.org/show_bug.cgi?id=89300 Reviewed by Adam Barth. The 1.0 draft of the Content Security Policy spec is just about to move to Last Call. We'll hide work on the upcoming 1.1 spec behind this ENABLE flag, disabled by default. Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html * Configurations/FeatureDefines.xcconfig: 2012-06-19 Mike West Add a scheme registry for bypassing Content Security Policy. https://bugs.webkit.org/show_bug.cgi?id=89373 Reviewed by Adam Barth. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-06-16 Adam Barth Settings::devicePixelRatio doesn't do anything and is confusing https://bugs.webkit.org/show_bug.cgi?id=89272 Reviewed by James Robinson. * Shared/WebPreferencesStore.h: (WebKit): - Remove boilerplate code for the setting. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewExperimental::devicePixelRatio): (QQuickWebViewExperimental::setDevicePixelRatio): - Change these functions to get and set the real device scale factor. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::sendViewportAttributesChanged): - Use the real device scale factor for the viewport calculation. (WebKit::WebPage::updatePreferences): - Remove boilerplate code for the setting. 2012-06-15 Christophe Dumez [WK2] Add support for explicit intents https://bugs.webkit.org/show_bug.cgi?id=89206 Reviewed by Kenneth Rohde Christiansen. Expose the service URL of a Web Intent. This URL is set for explicit intents. * Shared/IntentData.h: (IntentData): * UIProcess/WebIntentData.h: (WebKit::WebIntentData::service): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchIntent): 2012-06-15 Christophe Dumez [EFL][WK2] Add title support to Ewk_View https://bugs.webkit.org/show_bug.cgi?id=89095 Reviewed by Kenneth Rohde Christiansen. Add a method to get the title of the main frame in an Ewk_View. A "title,changed" signal is now emitted on the view to notify clients that the main frame title was changed. * PlatformEfl.cmake: * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (_ewk_view_priv_del): (ewk_view_base_add): (ewk_view_title_get): (ewk_view_title_changed): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_loader_client.cpp: Added. (didReceiveTitleForFrame): (ewk_view_loader_client_attach): * UIProcess/API/efl/ewk_view_loader_client_private.h: Added. * UIProcess/API/efl/ewk_view_private.h: 2012-06-15 Christophe Dumez [WK2][EFL] Implement navigation back/forward in Ewk_View https://bugs.webkit.org/show_bug.cgi?id=89173 Reviewed by Kenneth Rohde Christiansen. Add API for Ewk_View to ask the main frame to navigate backwards or forwards in history. Also add API to query if such navigation is possible. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_back): (ewk_view_forward): (ewk_view_back_possible): (ewk_view_forward_possible): * UIProcess/API/efl/ewk_view.h: 2012-06-15 Christophe Dumez [EFL][WK2] Implement reload / stop in Ewk_View https://bugs.webkit.org/show_bug.cgi?id=89168 Reviewed by Kenneth Rohde Christiansen. Add API on the Ewk_View to reload the main frame and to stop the current load. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_reload): (ewk_view_stop): * UIProcess/API/efl/ewk_view.h: 2012-06-14 Kent Tamura Validate form state strings in FormController::setStateForNewFormElements() https://bugs.webkit.org/show_bug.cgi?id=88768 Reviewed by Hajime Morita. * win/WebKit2.def: Expose some symbols used by Internals.cpp. * win/WebKit2CFLite.def: ditto. 2012-06-14 Tim Horton DrawingArea: Painting is being resumed while the view is not visible https://bugs.webkit.org/show_bug.cgi?id=88940 Reviewed by Dean Jackson. Using requestAnimationFrame and the fullscreen API on a DrawingArea-backed window would cause rAF to permanently suspend animations after entering full-screen mode, because of the following: 0. JavaScript causes fullscreen transition to start. 1. Painting (and rAF) are suspended. 2. The page changes size. a. DrawingAreaProxyImpl::sizeDidChange() calls DrawingAreaImpl::updateBackingStoreState, which calls DrawingAreaImpl::resumePainting. b. DrawingAreaImpl::resumePainting resumes painting, but does *not* resume rAF, because windowIsVisible is (legitimately) false. 3. The view becomes visible, windowIsVisible is updated to true. 4. visibilityDidChange() calls resumePainting again, but this time it early exits because painting is not suspended. Notice that because of the early exit in 4, rAF is never resumed. To solve this and prevent any further bugs caused by these unnecessary calls to resume/suspendPainting, temporarily stop sending SuspendPainting/ResumePainting messages from DrawingAreaProxyImpl::visibilityDidChange during the window animations that occur while entering and exiting full-screen. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/API/mac/WKView.mm: (-[WKView setAutomaticallySuspendAndResumePainting:]): (-[WKView automaticallySuspendAndResumePainting]): * UIProcess/DrawingAreaProxyImpl.cpp: (WebKit::DrawingAreaProxyImpl::visibilityDidChange): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::setShouldSuspendAndResumePainting): (WebKit::WebPageProxy::shouldSuspendAndResumePainting): * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController enterFullScreen:]): (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): 2012-06-14 Jia Pu Mark text with text alternative with blue underline. https://bugs.webkit.org/show_bug.cgi?id=83047 Reviewed by Enrica Casucci. Changes in WebKit2 include implementation of new functions declared in AlternativeTextClient, and logic for calling Editor::insertDictatedText() instead of Editor::insertText() when there's alternatives attached to the input string. * Shared/API/c/WKContextMenuItemTypes.h: * Shared/API/c/WKSharedAPICast.h: * Shared/WebCoreArgumentCoders.cpp: * Shared/WebCoreArgumentCoders.h: * UIProcess/API/mac/PageClientImpl.h: * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::PageClientImpl): (WebKit::PageClientImpl::pageClosed): (WebKit::PageClientImpl::addDictationAlternatives): (WebKit::PageClientImpl::removeDictationAlternatives): (WebKit::PageClientImpl::showDictationAlternativeUI): (WebKit::PageClientImpl::dictationAlternatives): (WebKit::PageClientImpl::dismissDictationAlternativeUI): * UIProcess/API/mac/WKView.mm: (-[WKView insertText:replacementRange:]): (-[WKView validAttributesForMarkedText]): (-[WKView handleAcceptedAlternativeText:]): * UIProcess/API/mac/WKViewInternal.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::showDictationAlternativeUI): (WebKit::WebPageProxy::dismissDictationAlternativeUI): (WebKit::WebPageProxy::removeDictationAlternatives): (WebKit::WebPageProxy::dictationAlternatives): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/CorrectionPanel.mm: (correctionIndicatorType): (WebKit::CorrectionPanel::handleAcceptedReplacement): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::insertDictatedText): * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: (WebAlternativeTextClient): * WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp: (WebKit::WebAlternativeTextClient::showCorrectionAlternative): (WebKit::WebAlternativeTextClient::dismissAlternative): (WebKit::WebAlternativeTextClient::dismissAlternativeSoon): (WebKit::WebAlternativeTextClient::recordAutocorrectionResponse): (WebKit::WebAlternativeTextClient::removeDictationAlternatives): (WebKit::WebAlternativeTextClient::showDictationAlternativeUI): (WebKit::WebAlternativeTextClient::dismissDictationAlternativeUI): (WebKit::WebAlternativeTextClient::dictationAlternatives): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::insertDictatedText): 2012-06-13 Andreas Kling Chinese IM receives incorrect/duplicated key events in text fields in webpages in Safari. Reviewed by Darin Adler. Send the DidReceiveEvent message with the DispatchMessageEvenWhenWaitingForSyncReply flag for keyboard events. This ensures that it always arrives before the corresponding synchronous InterpretQueuedKeyEvent message. The problem was that we relied on DidReceiveEvent / InterpretQueuedKeyEvent always arriving in the same order they were sent. This was not always true, since DidReceiveEvent (async) would get deferred during an unrelated waitForSyncReply() whereas InterpretQueuedKeyEvent (sync) gets dispatched right away. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::keyEvent): 2012-06-14 Carlos Garcia Campos [GTK] Add input methods submenu item to the default context menu for editable content https://bugs.webkit.org/show_bug.cgi?id=80600 Reviewed by Martin Robinson. * GNUmakefile.am: Add new files to compilation. * UIProcess/API/gtk/WebKitContextMenuClient.cpp: Added. (getContextMenuFromProposedMenu): Call webkitWebViewContextMenu(). (attachContextMenuClientToView): Add implementation for getContextMenuFromProposedMenu callback. * UIProcess/API/gtk/WebKitContextMenuClient.h: Added. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewConstructed): Attach context menu client to view. (webkitWebViewCreateAndAppendDefaultMenuItems): Helper function to add default context menu items to the new context menu items vector. (webkitWebViewShouldShowInputMethodsMenu): Helper function to check whether to show the input methods submenu according to the gtk-show-input-method-menu GTK+ setting. (webkitWebViewCreateAndAppendInputMethodsMenuItem): Helper function to add input methods submenu to the new context menu items vector. (webkitWebViewContextMenu): Create a new context menu items vector containing default items and input methods submenu in case of editable content. The active content menu is populated using that new vector. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseSetActiveContextMenu): Set the active context menu. (webkitWebViewBaseGetActiveContextMenu): Get the active context menu. * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: * UIProcess/API/gtk/WebKitWebViewPrivate.h: * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::WebContextMenuProxyGtk::append): Helper method to add a new item to the context menu. (WebKit::WebContextMenuProxyGtk::populate): Add items to the context menu. (WebKit::WebContextMenuProxyGtk::showContextMenu): Populate the menu with the given items and popup the menu if it's not empty. (WebKit::WebContextMenuProxyGtk::hideContextMenu): Get the GtkMenu from the WebCore ContextMenu to popdown it. (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): Call webkitWebViewBaseSetActiveContextMenu() to set the menu as the current active one for the view. (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): Call webkitWebViewBaseSetActiveContextMenu() with NULL to reset the current active context of the view. GtkMenu is destroyed by WebCore ContextMenu in its destructor. * UIProcess/gtk/WebContextMenuProxyGtk.h: 2012-06-14 Christophe Dumez [WK2] Add implementation for registerIntentService in WebFrameLoaderClient https://bugs.webkit.org/show_bug.cgi?id=88399 Reviewed by Kenneth Rohde Christiansen. Add implementation for registerIntentService() in WebFrameLoaderClient. * CMakeLists.txt: * GNUmakefile.list.am: * Shared/API/c/WKBase.h: * Shared/APIClientTraits.h: * Shared/APIObject.h: * Shared/IntentServiceInfo.cpp: Added. (WebKit): (WebKit::IntentServiceInfo::encode): (WebKit::IntentServiceInfo::decode): * Shared/IntentServiceInfo.h: Added. (CoreIPC): (WebKit): (IntentServiceInfo): * Target.pri: * UIProcess/API/C/WKAPICast.h: (WebKit): * UIProcess/API/C/WKPage.h: * UIProcess/API/gtk/WebKitLoaderClient.cpp: (attachLoaderClientToView): * UIProcess/WebIntentServiceInfo.cpp: Added. (WebKit): (WebKit::WebIntentServiceInfo::WebIntentServiceInfo): * UIProcess/WebIntentServiceInfo.h: Added. (WebKit): (WebIntentServiceInfo): (WebKit::WebIntentServiceInfo::create): (WebKit::WebIntentServiceInfo::~WebIntentServiceInfo): (WebKit::WebIntentServiceInfo::action): (WebKit::WebIntentServiceInfo::payloadType): (WebKit::WebIntentServiceInfo::href): (WebKit::WebIntentServiceInfo::title): (WebKit::WebIntentServiceInfo::disposition): (WebKit::WebIntentServiceInfo::type): * UIProcess/WebLoaderClient.cpp: (WebKit): (WebKit::WebLoaderClient::registerIntentServiceForFrame): * UIProcess/WebLoaderClient.h: (WebKit): (WebLoaderClient): * UIProcess/WebPageProxy.cpp: (WebKit): (WebKit::WebPageProxy::registerIntentServiceForFrame): * UIProcess/WebPageProxy.h: (WebKit): (WebPageProxy): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit): (WebKit::WebFrameLoaderClient::registerIntentService): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: (WebFrameLoaderClient): 2012-06-14 Carlos Garcia Campos [WK2] Add WKHitTestResultIsContentEditable() https://bugs.webkit.org/show_bug.cgi?id=80597 Reviewed by Martin Robinson. * Shared/WebHitTestResult.cpp: (WebKit::WebHitTestResult::Data::encode): Encode isContentEditable. (WebKit::WebHitTestResult::Data::decode): Decode isContentEditable. * Shared/WebHitTestResult.h: (Data): Add isContentEditable. (WebKit::WebHitTestResult::Data::Data): Initialize isContentEditable. (WebKit::WebHitTestResult::isContentEditable): Returns whether hit test result target is editable content. * UIProcess/API/C/WKHitTestResult.cpp: (WKHitTestResultIsContentEditable): C API to get whether hit test result target is editable content. * UIProcess/API/C/WKHitTestResult.h: * UIProcess/API/gtk/WebKitHitTestResult.cpp: (webkitHitTestResultCreate): Add WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE flags to the context if hit test result target is editable content. (webkit_hit_test_result_context_is_editable): Returns TRUE if WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE flags is present in context. * UIProcess/API/gtk/WebKitHitTestResult.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols. * UIProcess/API/gtk/tests/TestWebKitWebView.cpp: (testWebViewMouseTarget): Add tests for WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE. 2012-06-14 Grzegorz Czajkowski [WK2] Fix client interface size for WKPageLoaderClient. https://bugs.webkit.org/show_bug.cgi?id=88764 Reviewed by Anders Carlsson. Fixes offset of WKPageLoaderClient for version 0 by adding didDetectXSSForFrame. The offset should be off the first new callback that was added in the new version. * Shared/APIClientTraits.cpp: (WebKit): 2012-06-13 Christophe Dumez [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient https://bugs.webkit.org/show_bug.cgi?id=88340 Reviewed by Kenneth Rohde Christiansen. Add implementation for dispatchIntent() in WebFrameLoaderClient. * CMakeLists.txt: * GNUmakefile.list.am: * Shared/API/c/WKBase.h: * Shared/APIClientTraits.h: * Shared/APIObject.h: * Shared/IntentData.cpp: Added. (WebKit): (WebKit::IntentData::encode): (WebKit::IntentData::decode): * Shared/IntentData.h: Added. (CoreIPC): (WebKit): (IntentData): * Target.pri: * UIProcess/API/C/WKAPICast.h: (WebKit): * UIProcess/API/C/WKPage.h: * UIProcess/API/gtk/WebKitLoaderClient.cpp: (attachLoaderClientToView): * UIProcess/WebIntentData.cpp: Added. (WebKit): (WebKit::WebIntentData::WebIntentData): (WebKit::WebIntentData::data): * UIProcess/WebIntentData.h: Added. (WebKit): (WebIntentData): (WebKit::WebIntentData::create): (WebKit::WebIntentData::~WebIntentData): (WebKit::WebIntentData::action): (WebKit::WebIntentData::payloadType): (WebKit::WebIntentData::extras): (WebKit::WebIntentData::suggestions): (WebKit::WebIntentData::type): * UIProcess/WebLoaderClient.cpp: (WebKit): (WebKit::WebLoaderClient::didReceiveIntentForFrame): * UIProcess/WebLoaderClient.h: (WebKit): (WebLoaderClient): * UIProcess/WebPageProxy.cpp: (WebKit): (WebKit::WebPageProxy::didReceiveIntentForFrame): * UIProcess/WebPageProxy.h: (WebKit): (WebPageProxy): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchIntent): 2012-06-13 Tim Horton Rename _swapView:with: to _replaceView:with: https://bugs.webkit.org/show_bug.cgi?id=89037 Reviewed by Darin Adler. _swapView:with: is a misnomer - after calling it, the first view is no longer contained within the view hierarchy. "Replace" is a more accurate term. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController enterFullScreen:]): (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): (-[WKFullScreenWindowController _replaceView:with:]): 2012-06-13 Martin Robinson [GTK] Add an accelerated compositing implementation for WebKit2 https://bugs.webkit.org/show_bug.cgi?id=86037 Reviewed by Alejandro G. Castro. Add an implementation of LayerTreeHost for GTK+ that uses TextureMapperGL. Later this implementation will fall back to using the ImageBuffer TextureMapper. * GNUmakefile.am: Add new files to the compilation. * Shared/LayerTreeContext.h: (LayerTreeContext): The GTK+ version of the LayerTreeContext just holds window handle. * Shared/gtk/LayerTreeContextGtk.cpp: Copied from Source/WebKit2/WebProcess/WebPage/LayerTreeHost.cpp. * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: Added. * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: Added. Add this LayerTreeHost implementation that just creates a GL context from the widget X11 window ID. Later implementations might find a more cross-platform solution. * WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::platformInitialize): Initialize the native window handle to be zero. (WebKit::WebPage::widgetMapped): When mapping the widget, try to get the native window handle and send it to the WebProcess. 2012-06-13 Andras Becsi [Qt][WK2] ASSERT(m_rawAttributes.initialScale > 0) in QtViewportHandler::initialRect() https://bugs.webkit.org/show_bug.cgi?id=89026 Reviewed by Csaba Osztrogonác. Only act on viewport attribute changes if the layout size is valid. * UIProcess/qt/QtViewportHandler.cpp: (WebKit::QtViewportHandler::setInitialScaleIfNeeded): (WebKit::QtViewportHandler::viewportAttributesChanged): 2012-06-13 Brent Fulgham [WinCairo] Build fix after Windows export definition file change. * win/WebKit2CFLite.def: Add missing symbol exports. 2012-06-13 Allan Sandfeld Jensen [Qt] Fixed visible content rect lost during page-load https://bugs.webkit.org/show_bug.cgi?id=88991 Reviewed by Kenneth Rohde Christiansen. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): 2012-06-13 Sheriff Bot Unreviewed, rolling out r120209. http://trac.webkit.org/changeset/120209 https://bugs.webkit.org/show_bug.cgi?id=89007 Broke the WebKit2 mac build. (Requested by andersca on #webkit). * CMakeLists.txt: * GNUmakefile.list.am: * Shared/API/c/WKBase.h: * Shared/APIClientTraits.h: * Shared/APIObject.h: * Shared/IntentData.cpp: Removed. * Shared/IntentData.h: Removed. * Target.pri: * UIProcess/API/C/WKAPICast.h: (WebKit): * UIProcess/API/C/WKPage.h: * UIProcess/API/gtk/WebKitLoaderClient.cpp: (attachLoaderClientToView): * UIProcess/WebIntentData.cpp: Removed. * UIProcess/WebIntentData.h: Removed. * UIProcess/WebLoaderClient.cpp: * UIProcess/WebLoaderClient.h: (WebKit): (WebLoaderClient): * UIProcess/WebPageProxy.cpp: * UIProcess/WebPageProxy.h: (WebKit): (WebPageProxy): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchIntent): 2012-06-13 Alexis Menard Web Inspector: add a way to get the remote inspector url for a given page. https://bugs.webkit.org/show_bug.cgi?id=88902 Reviewed by Jocelyn Turcotte. Expose the remote inspector url for a given page in the API. If you want to create a web view and load directly the inspector for the page you want to inspect, it helps to get the url as it is impossible to figure it out from the API layer. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewExperimental::remoteInspectorUrl): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/InspectorServer/WebInspectorServer.cpp: (WebKit): (WebKit::WebInspectorServer::inspectorUrlForPageID): * UIProcess/InspectorServer/WebInspectorServer.h: (WebInspectorServer): * UIProcess/InspectorServer/WebSocketServer.cpp: (WebKit::WebSocketServer::WebSocketServer): (WebKit::WebSocketServer::listen): (WebKit::WebSocketServer::close): * UIProcess/InspectorServer/WebSocketServer.h: (WebKit::WebSocketServer::bindAddress): (WebKit::WebSocketServer::port): (WebKit::WebSocketServer::serverState): (WebSocketServer): * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp: (WebKit::remoteInspectorPagePath): (WebKit): (WebKit::WebInspectorServer::inspectorUrlForPageID): (WebKit::WebInspectorServer::buildPageList): * UIProcess/WebInspectorProxy.h: (WebKit::WebInspectorProxy::remoteInspectionPageID): 2012-06-13 Christophe Dumez [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient https://bugs.webkit.org/show_bug.cgi?id=88340 Reviewed by Kenneth Rohde Christiansen. Add implementation for dispatchIntent() in WebFrameLoaderClient. * CMakeLists.txt: * GNUmakefile.list.am: * Shared/API/c/WKBase.h: * Shared/APIClientTraits.h: * Shared/APIObject.h: * Shared/IntentData.cpp: Added. (WebKit): (WebKit::IntentData::encode): (WebKit::IntentData::decode): * Shared/IntentData.h: Added. (CoreIPC): (WebKit): (IntentData): * Target.pri: * UIProcess/API/C/WKAPICast.h: (WebKit): * UIProcess/API/C/WKPage.h: * UIProcess/API/gtk/WebKitLoaderClient.cpp: (attachLoaderClientToView): * UIProcess/WebIntentData.cpp: Added. (WebKit): (WebKit::WebIntentData::WebIntentData): (WebKit::WebIntentData::data): * UIProcess/WebIntentData.h: Added. (WebKit): (WebIntentData): (WebKit::WebIntentData::create): (WebKit::WebIntentData::~WebIntentData): (WebKit::WebIntentData::action): (WebKit::WebIntentData::payloadType): (WebKit::WebIntentData::extras): (WebKit::WebIntentData::suggestions): (WebKit::WebIntentData::type): * UIProcess/WebLoaderClient.cpp: (WebKit): (WebKit::WebLoaderClient::didReceiveIntentForFrame): * UIProcess/WebLoaderClient.h: (WebKit): (WebLoaderClient): * UIProcess/WebPageProxy.cpp: (WebKit): (WebKit::WebPageProxy::didReceiveIntentForFrame): * UIProcess/WebPageProxy.h: (WebKit): (WebPageProxy): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchIntent): 2012-06-13 Balazs Kelemen [Qt][WK2] Scanning plugins blocks the UI for a long time https://bugs.webkit.org/show_bug.cgi?id=88535 Reviewed by Simon Hausmann. Implement a persistent cache for the meta data of plugins. This way the UI process will not block for too long when it's time to scan the plugins (except the first time). The cache is a json file stored in a standard hidden cache directory. * Shared/qt/QtDefaultDataLocation.cpp: Added. (WebKit): (WebKit::defaultDataLocation): * Shared/qt/QtDefaultDataLocation.h: Added. (WebKit): Added a common helper for the path we use to put stuff into. * Target.pri: * UIProcess/Plugins/qt/PluginProcessProxyQt.cpp: (WebKit::cacheFile): (WebKit): (WebKit::readMetaDataFromCacheFile): (WebKit::writeToCacheFile): (WebKit::appendToCacheFile): (WebKit::tryReadPluginMetaDataFromCacheFile): (WebKit::PluginProcessProxy::scanPlugin): * UIProcess/qt/WebContextQt.cpp: 2012-06-13 Kenneth Rohde Christiansen [Qt] Do not set contents pos to the current position https://bugs.webkit.org/show_bug.cgi?id=88990 Reviewed by Laszlo Gombos. This is basically an optimization but it also solves flickering in some cases. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebView::setContentPos): 2012-06-12 MORITA Hajime Shadow Pseudo ID should be able to nest to point nested shadow DOM. https://bugs.webkit.org/show_bug.cgi?id=62218 Reviewed by Dimitri Glazkov. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-06-12 Kenneth Rohde Christiansen Unreviewed build fix. * UIProcess/qt/QtViewportHandler.cpp: (WebKit::QtViewportHandler::initialRect): 2012-06-11 Jocelyn Turcotte Using extrernal ICU library on case unsensitive drives will not work https://bugs.webkit.org/show_bug.cgi?id=70913 Reviewed by Csaba Osztrogonác. * WebProcess/WebPage/UpdateAtlas.cpp: 2012-06-12 Kenneth Rohde Christiansen [Qt] Do not move/scale content while the user is interacting with it https://bugs.webkit.org/show_bug.cgi?id=88872 Reviewed by Simon Hausmann. Don't try moving content into valid bounds when the content size changes and the user is interacting with the content. Only apply the viewport initial scale after user interaction has ended. * UIProcess/qt/QtViewportHandler.cpp: (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer): (WebKit::QtViewportHandler::setInitialScaleIfNeeded): (WebKit::QtViewportHandler::viewportAttributesChanged): (WebKit::QtViewportHandler::pageContentsSizeChanged): (WebKit::QtViewportHandler::initialRect): (WebKit): * UIProcess/qt/QtViewportHandler.h: (QtViewportHandler): 2012-06-11 Kaustubh Atrawalkar [DRT] LTC:: counterValueForElementById() could be moved to Internals. https://bugs.webkit.org/show_bug.cgi?id=84406 Reviewed by Hajime Morita. Exporting Internals::counterValueForElement symbols for the win build. * win/WebKit2.def: 2012-06-11 Ryuan Choi [CMAKE][WK2] Make WebProcess target name more clear. https://bugs.webkit.org/show_bug.cgi?id=88767 Reviewed by Ryosuke Niwa. * CMakeLists.txt: Change WebProcess_NAME to WebProcess_EXECUTABLE_NAME. 2012-06-11 Alexis Menard [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag. https://bugs.webkit.org/show_bug.cgi?id=88804 Reviewed by Tony Chang. Protect box-decoration-break behind a feature flag enabled by default. * Configurations/FeatureDefines.xcconfig: 2012-06-11 Gyuyoung Kim [CMAKE][EFL] Remove duplicated executable output path https://bugs.webkit.org/show_bug.cgi?id=88765 Reviewed by Daniel Bates. CMake files for EFL port have redefined executable output path. However, EFL port doesn't need to define again because it is already defined in top-level CMake file. * CMakeLists.txt: 2012-06-11 Anders Carlsson Pass the right color space over to the web process so we can set it on our CA context https://bugs.webkit.org/show_bug.cgi?id=88819 Reviewed by John Sullivan. * Platform/mac/LayerHostingContext.h: (LayerHostingContext): * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::createForPort): (WebKit::LayerHostingContext::createForWindowServer): Use a single constructor and explicitly set up the parameters of the constructed object. (WebKit::LayerHostingContext::setColorSpace): (WebKit::LayerHostingContext::colorSpace): Add getter and setter. * Scripts/webkit2/messages.py: (struct_or_class): WebKit::ColorSpaceData is a struct. * Shared/WebPageCreationParameters.cpp: Encode and decode the color space parameter. * Shared/WebPageCreationParameters.h: Add the color space. * Shared/mac/ColorSpaceData.h: Added. * Shared/mac/ColorSpaceData.mm: Added. Add a new class that represents a color space that can be sent over the wire. * UIProcess/API/mac/PageClientImpl.h: * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::colorSpace): Call through to the WKView. * UIProcess/API/mac/WKView.mm: (-[WKView _windowDidChangeBackingProperties:]): Fix whitespace. (-[WKView viewDidChangeBackingProperties]): Check if our new color space is different from the current one and null the current one out if that is the case, it will be reinitialized by the next call to -[WKView _colorSpace]. (-[WKView _colorSpace:]): Compute the color space. If we're not in a window we'll get the main screen's color space. * UIProcess/DrawingAreaProxy.h: (WebKit::DrawingAreaProxy::colorSpaceDidChange): Add empty stub. * UIProcess/PageClient.h: Add colorSpace getter. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): Initialize the color space. * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: (WebKit::TiledCoreAnimationDrawingAreaProxy::colorSpaceDidChange): Send the new color space over to the web process. * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::colorSpace): Call through to the page client. * WebKit2.xcodeproj/project.pbxproj: Add ColorSpaceData.h and ColorSpaceData.mm. * WebProcess/WebPage/DrawingArea.h: * WebProcess/WebPage/DrawingArea.messages.in: Add SetColorSpace message. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): Set the color space from the creation parameters. (WebKit::TiledCoreAnimationDrawingArea::setColorSpace): Set the color space on the layer hosting context. (WebKit::TiledCoreAnimationDrawingArea::updateLayerHostingContext): Make sure we apply the color space from the previous layer hosting context if one exists. 2012-06-11 Anders Carlsson Crash when a plug-in tries to use the NPRuntime API with JavaScript disabled https://bugs.webkit.org/show_bug.cgi?id=88797 Reviewed by Brady Eidson. * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::initialize): Handle the windowNPObjectID being 0. (WebKit::PluginControllerProxy::windowScriptNPObject): Handle m_windownPObject being null. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::windowScriptNPObject): Return null if JavaScript is disabled. (WebKit::PluginView::pluginElementNPObject): Ditto. 2012-06-11 Kenneth Rohde Christiansen Add QML api for setting device width and height https://bugs.webkit.org/show_bug.cgi?id=88777 Reviewed by Simon Hausmann. Add the new API and set the default values to 0 (unset). The current values were introduced by Qt and only Qt depends on them. * Shared/WebPreferencesStore.h: (WebKit): * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewExperimental::deviceWidth): (QQuickWebViewExperimental::setDeviceWidth): (QQuickWebViewExperimental::deviceHeight): (QQuickWebViewExperimental::setDeviceHeight): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/qt/QtViewportHandler.cpp: (WebKit::QtViewportHandler::viewportItemSizeChanged): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::sendViewportAttributesChanged): 2012-06-11 Michael Brüning [Qt][WK2] Compute and set cache capacities using the current CacheModel https://bugs.webkit.org/show_bug.cgi?id=73918 Reviewed by Kenneth Rohde Christiansen. Added implementation of cache model for Qt WK 2 port including supporting functionality such as WebProcess creation parameters and default values for disk cache directories. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: (WebProcessCreationParameters): * UIProcess/qt/WebContextQt.cpp: (WebKit::defaultDiskCacheDirectory): (WebKit): (WebKit::WebContext::platformInitializeWebProcess): * WebProcess/qt/WebProcessQt.cpp: (WebKit::physicalMemorySizeInBytes): (WebKit::WebProcess::platformSetCacheModel): (WebKit::WebProcess::platformInitializeWebProcess): 2012-06-10 Darin Adler Remove unneeded callRemovedLastRef function from TreeShared refactoring https://bugs.webkit.org/show_bug.cgi?id=88653 Reviewed by Sam Weinig. * win/WebKit2.def: Export removedLastRef instead of callRemovedLastRef. * win/WebKit2CFLite.def: Ditto. 2012-06-10 Ryuan Choi [EFL][WK2] Add and refactor ewk API in order to support MiniBrowser without WK API. https://bugs.webkit.org/show_bug.cgi?id=84124 Reviewed by Chang Shu. Modify ewk_view and add ewk_context to provide a platform-depedent WebKit2 API. This patch provides the minimum to support MiniBrowser. * PlatformEfl.cmake: add ewk_context.cpp. * UIProcess/API/efl/EWebKit2.h: Added. * UIProcess/API/efl/ewk_context.cpp: Added. (_Ewk_Context): (createDefaultWebContext): (ewk_context_WKContext_get): (ewk_context_default_get): * UIProcess/API/efl/ewk_context.h: Added. * UIProcess/API/efl/ewk_context_private.h: Added. * UIProcess/API/efl/ewk_view.cpp: (_Ewk_View_Private_Data): (_ewk_view_priv_del): (ewk_view_base_add): (ewk_view_add_with_context): (ewk_view_add): (ewk_view_uri_set): (ewk_view_uri_get): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_private.h: 2012-06-09 Sukolsak Sakshuwong Add UNDO_MANAGER flag https://bugs.webkit.org/show_bug.cgi?id=87908 Reviewed by Tony Chang. * Configurations/FeatureDefines.xcconfig: 2012-06-08 Brent Fulgham [WinCairo] Build fix after Windows export definition file change. * win/WebKit2CFLite.def: This file needs to be kept in sync with WebKit2.def (aside from the WebKitInterface exports.) 2012-06-08 Viatcheslav Ostapenko [Qt] [WK2] API tests randomly assert in WebLayerTreeRenderer::assignImageToLayer https://bugs.webkit.org/show_bug.cgi?id=88667 Reviewed by Noam Rosenthal. Move deactivation of WebLayerTreeRenderer from LayerTreeHostProxy::purgeBackingStores to WebLayerTreeRenderer::purgeGLResources. LayerTreeHostProxy::purgeBackingStores is invoked on main thread after going through call gate and it is too late to deactivate renderer here, because some update messages are able to go through. WebLayerTreeRenderer::purgeGLResources is called directly from render node deallocation and it is right place to deactivate renderer. * UIProcess/LayerTreeHostProxy.cpp: (WebKit::LayerTreeHostProxy::purgeBackingStores): * UIProcess/WebLayerTreeRenderer.cpp: (WebKit::WebLayerTreeRenderer::purgeGLResources): 2012-06-08 Carlos Garcia Campos [GTK] Add API to get the library version to WebKit2 GTK+ https://bugs.webkit.org/show_bug.cgi?id=88426 Reviewed by Martin Robinson. * GNUmakefile.am: * GNUmakefile.list.am: * UIProcess/API/gtk/WebKitVersion.cpp: Added. (webkit_get_major_version): (webkit_get_minor_version): (webkit_get_micro_version): * UIProcess/API/gtk/WebKitVersion.h.in: Added. * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new symbols. * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new section for WebKitVersion. * UIProcess/API/gtk/tests/GNUmakefile.am: * UIProcess/API/gtk/tests/TestWebKitVersion.cpp: Added. (testWebKitVersion): (testWebKitCheckVersion): (beforeAll): (afterAll): * UIProcess/API/gtk/webkit2.h: Include WebKitVersion.h. 2012-06-08 Dan Bernstein Tried to fix the Snow Leopard build after r119806. * WebKit2Prefix.h: 2012-06-08 Andy Estes [WebKit2] Move Mac-specific bits from config.h to WebKit2Prefix.h https://bugs.webkit.org/show_bug.cgi?id=88625 Reviewed by Dan Bernstein. Since the Mac supports prefix headers, there is no point in having Mac-specific code in WebKit2's config.h. Move it to WebKit2Prefix.h. * WebKit2Prefix.h: * config.h: 2012-06-07 Kentaro Hara Reduce Node object size from 72 byte to 64 byte https://bugs.webkit.org/show_bug.cgi?id=88528 Reviewed by Ryosuke Niwa. Added a symbol for callRemovedLastRef(). * mac/WebKit2.order: * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-06-07 Andy Estes [WebKit2] Explicitly include CoreFoundation.h in config.h https://bugs.webkit.org/show_bug.cgi?id=88619 Reviewed by Dan Bernstein. WebKit2 relies (probably unintentionally) on CoreFoundation.h being included by CoreGraphics.h (via CGSession.h), but some versions of CoreGraphics headers don't include CoreFoundation.h. WebKit2 should include it explicitly in config.h. * config.h: Import CoreFoundation.h. 2012-06-07 Andy Estes [WebKit2] Only include Cocoa.h on platforms that use AppKit https://bugs.webkit.org/show_bug.cgi?id=88517 Reviewed by Sam Weinig. * WebKit2Prefix.h: Include Platform.h to get USE() macros. GTK needs to include autotoolsconfig.h before including Platform.h, so do that first if building on GTK. Then, if compiling an Objective-C file, it's safe to include Foundation.h, but not necessarily Cocoa.h; only include the latter if USE(APPKIT) is true. * config.h: There's no need to import Cocoa.h since this is already imported in the prefix header. 2012-06-07 Anders Carlsson Search highlight does not scroll with the content of the page, and find overlay doesn't work, on large-enough window https://bugs.webkit.org/show_bug.cgi?id=88577 Reviewed by John Sullivan. Prevent the page overlay layer from falling into tiled mode. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer): 2012-06-07 Alexander Færøy Add QML API tests for Device Pixel Ratio https://bugs.webkit.org/show_bug.cgi?id=88531 Reviewed by Kenneth Rohde Christiansen. This patch adds an initial test case for the QML device pixel ratio API. The test currently fails and is therefore marked as being expected to fail. This will be fixed in a separated patch. * UIProcess/API/qt/tests/qmltests/WebView/tst_devicePixelRatio.qml: Added. 2012-06-07 Christophe Dumez [EFL][WK2] WebKit2-EFL does not link in debug mode https://bugs.webkit.org/show_bug.cgi?id=88518 Unreviewed. Fix WebKit2-EFL linking error in debug mode. * CMakeLists.txt: 2012-06-07 Simon Pena [GTK] Fix broken build due to missing
in GTK-DOC https://bugs.webkit.org/show_bug.cgi?id=88525 Unreviewed gardening. Added missing
tag. * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: 2012-06-07 Carlos Garcia Campos [GTK] Add API to register custom URI schemes to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=84133 Reviewed by Martin Robinson. * GNUmakefile.list.am: Add new files to compilation. * UIProcess/API/gtk/WebKitPrivate.h: * UIProcess/API/gtk/WebKitRequestManagerClient.cpp: Added. (didReceiveURIRequest): Callback emitted by the C API when a request for a custom URI scheme has been received. Call webkitWebContextReceivedURIRequest() to handle the request. (didFailToLoadURIRequest): Callback emitted by the C API when a request for a custom URI scheme failed to load. Call webkitWebContextDidFailToLoadURIRequest() to noitfy the web context. (attachRequestManagerClientToContext): Initialize the WKSoupRequestManagerClient. * UIProcess/API/gtk/WebKitRequestManagerClient.h: Added. * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: Added. (webkit_uri_scheme_request_init): (webkitURISchemeRequestFinalize): (webkit_uri_scheme_request_class_init): (webkitURISchemeRequestCreate): Create a new WebKitURISchemeRequest for the given URI and request identifier. (webkitURISchemeRequestGetID): Return the request identifier. (webkitURISchemeRequestCancel): Cancel the request operation. (webkit_uri_scheme_request_get_scheme): Return the scheme of the request. (webkit_uri_scheme_request_get_uri): Return the full URI of the request. (webkit_uri_scheme_request_get_path): Return the path of the URI. (webkitURISchemeRequestReadCallback): Read callback emitted when reading the contents of the input stream. (webkit_uri_scheme_request_finish): Finish the request by reading the contents of the input stream and sending the data to the WebProcess. * UIProcess/API/gtk/WebKitURISchemeRequest.h: Added. * UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h: Added. * UIProcess/API/gtk/WebKitWebContext.cpp: (WebKitURISchemeHandler::WebKitURISchemeHandler): Helper struct to save callback and user data of registered URI schemes. (createDefaultWebContext): Initialize the SoupRequestManager. (webkit_web_context_register_uri_scheme): Public API to register a custom URI scheme providing a callback that will be called to handle requests for that URI scheme. (webkitWebContextGetRequestManager): Helper private method to return the SoupRequestManager. (webkitWebContextReceivedURIRequest): Get the WebKitURISchemeHandler for the given request identifier and call the callback. Save the request in the request map. (webkitWebContextDidFailToLoadURIRequest): Cancel the ongoing request. (webkitWebContextDidFinishURIRequest): Remove the request from the map. * UIProcess/API/gtk/WebKitWebContext.h: * UIProcess/API/gtk/WebKitWebContextPrivate.h: * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add WebKitURISchemeRequest section. * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols. * UIProcess/API/gtk/docs/webkit2gtk.types: Add webkit_uri_scheme_request_get_type. * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp: (testWebContextURIScheme): (beforeAll): * UIProcess/API/gtk/webkit2.h: Include WebKitURISchemeRequest.h. 2012-06-07 Andras Becsi [Qt][WK2] setPageItemRectVisible() is not guarded by ViewportUpdateDeferrer at scaleAnimationValueChanged() https://bugs.webkit.org/show_bug.cgi?id=87954 Reviewed by Kenneth Rohde Christiansen. Resetting the end value, the easing curve or the duration of the scale animation triggers a recalculation of the animation interval. This might change the current value of the animated property. Since guarding of setPageItemRectVisible() relies on animation state change we have to make sure we only act on animation value changes if the animation is in active state. * UIProcess/qt/QtViewportHandler.cpp: (WebKit::QtViewportHandler::QtViewportHandler): (WebKit::QtViewportHandler::animatePageItemRectVisible): (WebKit::QtViewportHandler::scaleAnimationValueChanged): 2012-06-06 Carlos Garcia Campos [SOUP] WebSoupRequestManager should handle loading errors and zero-length replies https://bugs.webkit.org/show_bug.cgi?id=88087 Reviewed by Martin Robinson. * UIProcess/API/C/soup/WKSoupRequestManager.h: * UIProcess/soup/WebSoupRequestManagerClient.cpp: (WebKit::WebSoupRequestManagerClient::didFailToLoadURIRequest): Call didFailToLoadURIRequest in the client if present. * UIProcess/soup/WebSoupRequestManagerClient.h: * UIProcess/soup/WebSoupRequestManagerProxy.cpp: (WebKit::WebSoupRequestManagerProxy::WebSoupRequestManagerProxy): Initialize m_loadFailed. (WebKit::WebSoupRequestManagerProxy::didReceiveURIRequestData): Don't send more data to the web process if the resource failed to load. (WebKit::WebSoupRequestManagerProxy::didFailToLoadURIRequest): Set m_loadFailed and notifiy the client calling didFailToLoadURIRequest. * UIProcess/soup/WebSoupRequestManagerProxy.h: * UIProcess/soup/WebSoupRequestManagerProxy.messages.in: Add DidFailToLoadURIRequest message. * WebProcess/soup/WebKitSoupRequestGeneric.cpp: (webkitSoupRequestGenericSendAsync): Pass the cancellable to the WebSoupRequestManager. * WebProcess/soup/WebSoupRequestManager.cpp: (WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData): Helper struct to save requests. (WebSoupRequestAsyncData): Add a weak pointer to invalidate the request when it's destroyed before the operation has finished. (WebKit::WebSoupRequestAsyncData::~WebSoupRequestAsyncData): Remove the weak pointer. (WebKit::WebSoupRequestAsyncData::requestFailed): Return whther the request failed. (WebKit::WebSoupRequestAsyncData::releaseResult): Return the result and clear the pointer. (WebKit::WebSoupRequestManager::didHandleURIRequest): Create and empty memory stream for zero-length replies instead of creating an error. (WebKit::WebSoupRequestManager::didReceiveURIRequestData): If the request failed and more data expected from the UI process, send a message to the UI process to notify that the resource load failed. (WebKit::WebSoupRequestManager::send): Save request information in the request map. * WebProcess/soup/WebSoupRequestManager.h: 2012-06-06 Andy Estes Wrap uppercaseWord, lowercaseWord, and capitalizeWord with USE(APPKIT) https://bugs.webkit.org/show_bug.cgi?id=88504 Reviewed by Dan Bernstein. uppercaseWord, lowercaseWord, and capitalizeWord are methods declared by NSResponder that subclasses are expected to implement. WebKit should only support these implementations on platforms that use AppKit. * UIProcess/WebPageProxy.h: * WebProcess/WebCoreSupport/WebEditorClient.h: * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: * WebProcess/WebPage/WebPage.cpp: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2012-06-06 chandra Shekar Vallala [WK2-Gtk]Compilation errors with flag CONTEXT_MENUS=0 https://bugs.webkit.org/show_bug.cgi?id=87842 Reviewed by Martin Robinson. Fix for compilation errors while building webkit2-gtk with CONTEXT_MENUS=0 * UIProcess/gtk/WebContextMenuProxyGtk.cpp: Added code under CONTEXT_MENUS CC * UIProcess/gtk/WebContextMenuProxyGtk.h: Ditto * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp: Ditto 2012-06-06 Michael Brüning [Qt][WK2] Add preferredMinimumContentsWidth to the viewport info in MiniBrowser. https://bugs.webkit.org/show_bug.cgi?id=88327 Reviewed by Kenneth Rohde Christiansen. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewExperimental::setPreferredMinimumContentsWidth): * UIProcess/API/qt/qquickwebview_p.h: 2012-06-06 Tim Horton WebPage::windowIsVisible is incorrect during resumePainting https://bugs.webkit.org/show_bug.cgi?id=88374 Reviewed by Simon Fraser. Currently, when changing window visibility, WKView calls viewStateDidChange(ViewIsVisible) and then _updateWindowVisibility. This means that during viewStateDidChange, the WebPage's windowIsVisible state is incorrect. viewStateDidChange(ViewIsVisible) can end up in (one of the DrawingArea implementations)::resumePainting(), which uses windowIsVisible to determine whether or not to unpause requestAnimationFrame. This results in a state where, with some configurations, doing the following: 1. requestAnimationFrame() 2. requestFullScreen() 3. requestAnimationFrame() 4. cancelFullScreen() 5. requestAnimationFrame() Will cause the second and third rAF calls to have no effect. Even after cancelFullScreen() is called, the fact that we have had unpaired suspend/resumeScriptedAnimations will cause the suspend count on the ScriptedAnimationController to never return to zero, which will cause us to never recover rAF functionality. The fix is very simple: we should _updateWindowVisibility *before* viewStateDidChange, so that it is always correct for any code called underneath that method. * UIProcess/API/mac/WKView.mm: (-[WKView viewDidMoveToWindow]): (-[WKView _windowDidOrderOffScreen:]): (-[WKView _windowDidOrderOnScreen:]): 2012-06-05 Dinu Jacob [Qt][WK2] Use Component.onCompleted in API tests for single and multi file upload tests. https://bugs.webkit.org/show_bug.cgi?id=88247 Reviewed by Kenneth Rohde Christiansen. With r116936, Component.onCompleted can be used for callback instead of the 1s timer in single and multi file upload tests. * UIProcess/API/qt/tests/qmltests/WebView/tst_multiFileUpload.qml: * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml: 2012-06-04 Stephanie Lewis https://bugs.webkit.org/show_bug.cgi?id=88370 Memory sampler should trigger low memory signal Reviewed by Geoff Garen. Send low memory signal when running the memory sampler. We'd like to test memory that cannot be freed. * Shared/WebMemorySampler.cpp: (WebKit::WebMemorySampler::sampleTimerFired): * Shared/WebMemorySampler.h: (WebMemorySampler): * Shared/mac/WebMemorySampler.mac.mm: (WebKit): (WebKit::WebMemorySampler::sendMemoryPressureEvent): 2012-06-05 Brady Eidson and https://bugs.webkit.org/show_bug.cgi?id=88372 REGRESSION(110494): Can no longer drag-and-drop links into FileMaker Pro 12 - Before r110494 we used to write the NSStringPboardType to the pasteboard. After r110494 we write NSURLPboardType instead. That's basically a no-op, but the NSStringPboardType needs to be restored. - Before r110494 we wrote the link destination URL to the pasteboard. After r110494 we write the image src URL if the link is an image. We need to revert to writing the link URL. Fortunately these changes can be accomplished with a 2-line fix. Reviewed by Enrica Casucci. * UIProcess/API/mac/WKView.mm: (-[WKView _setPromisedData:WebCore::withFileName:withExtension:withTitle:withURL:withVisibleURL:withArchive:WebCore::forPasteboard:]): n 2012-06-05 Tor Arne Vestbø [Qt] Implement log channel initialization for WebKit2 Reviewed by Alexis Menard. * Platform/Logging.cpp: (WebKit): * Platform/Logging.h: (WebKit): * Platform/qt/LoggingQt.cpp: Copied from Source/WebKit2/Platform/gtk/LoggingGtk.cpp (WebKit): (WebKit::initializeLogChannel): * Target.pri: 2012-06-05 Jocelyn Turcotte WebLayerTreeRenderer behaves wrongly when no contentsScale is set. https://bugs.webkit.org/show_bug.cgi?id=88357 Reviewed by Alexis Menard. The contentsScale needs to get a default value in case no value is explicitely set yet. This fixes the blank-until-resize problem when running MiniBrowser in --desktop mode. * UIProcess/WebLayerTreeRenderer.cpp: (WebKit::WebLayerTreeRenderer::WebLayerTreeRenderer): 2012-06-05 Alexis Menard [Qt] Don't propagate viewport size changes if the viewport is empty. https://bugs.webkit.org/show_bug.cgi?id=88336 Reviewed by Tor Arne Vestbø. Qt Quick sequentially set the x, y, width, height of the view. We really want to start propagating further when the size of the viewport becomes valid, i.e. both height and width are defined. In any case lower level classes are discarding an empty size such as WebPage::sendViewportAttributesChanged() so it was pointless to send the size through the IPC bus for nothing. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewLegacyPrivate::updateViewportSize): 2012-06-05 Carlos Garcia Campos [GTK] Add webkit_download_get_received_data_length to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=88323 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitDownload.cpp: (webkit_download_get_received_data_length): * UIProcess/API/gtk/WebKitDownload.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: * UIProcess/API/gtk/tests/TestDownloads.cpp: 2012-06-05 Dongwoo Im Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'. https://bugs.webkit.org/show_bug.cgi?id=73176 Reviewed by Adam Barth. Two more APIs are added in Custom Scheme Handler specification. http://dev.w3.org/html5/spec/Overview.html#custom-handlers One is 'isProtocolHandlerRegistered' to query whether the specific URL is registered or not. The other is 'unregisterProtocolHandler' to remove the registered URL. * Configurations/FeatureDefines.xcconfig: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'. 2012-06-05 Christophe Dumez [EFL][WK2] WebKit2-EFL does not link with gold linker https://bugs.webkit.org/show_bug.cgi?id=88295 Unreviewed. Fix linking when using gold linker. * PlatformEfl.cmake: 2012-06-05 Mario Sanchez Prada [GTK][WK2] Implement API for Geolocation permission requests in the GTK port https://bugs.webkit.org/show_bug.cgi?id=83879 Reviewed by Carlos Garcia Campos. Added a new kind of permission request for supporting the Geolocation API in WebKit2GTK+. New WebKitGeolocationPermissionRequest class, implementing the WebKitPermissionRequest interface, to enabling client applications to allow or deny geolocation permission requests. * GNUmakefile.list.am: Added new files. * UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp: Added. (_WebKitGeolocationPermissionRequestPrivate): (webkitGeolocationPermissionRequestAllow): (webkitGeolocationPermissionRequestDeny): (webkit_permission_request_interface_init): (webkit_geolocation_permission_request_init): (webkitGeolocationPermissionRequestFinalize): (webkit_geolocation_permission_request_class_init): (webkitGeolocationPermissionRequestCreate): * UIProcess/API/gtk/WebKitGeolocationPermissionRequest.h: Added. (_WebKitGeolocationPermissionRequest): (_WebKitGeolocationPermissionRequestClass): * UIProcess/API/gtk/WebKitGeolocationPermissionRequestPrivate.h: Added. Include WKGeolocationPermissionRequest.h in WebKitPrivate.h, so we can use it from the new WebKitGeolocationPermissionRequest class. * UIProcess/API/gtk/WebKitPrivate.h: Added new include. Implement geolocation permission requests in the UI client. * UIProcess/API/gtk/WebKitUIClient.cpp: (decidePolicyForGeolocationPermissionRequest): Create a new instance of the WebKitGeolocationPermissionRequest class and call to webkitWebViewMakePermissionRequest(). (attachUIClientToView): Provide an implementation function for decidePolicyForGeolocationPermissionRequest. * UIProcess/API/gtk/WebKitWebView.h: Add new element to WebKitPermissionRequestType enumeration for geolocation requests. * UIProcess/API/gtk/webkit2.h: Added header file for WebKitGeolocationPermissionRequest New unit tests to test allowing and denying permission requests. * UIProcess/API/gtk/tests/TestWebKitWebView.cpp: (testWebViewPermissionRequests): New test that loads a simple HTML with JavaScript code requesting the current location. (beforeAll): Added new test. Updated documentation files. * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: 2012-06-04 Sadrul Habib Chowdhury [chromium] Fix software rendering for device-scale-factor > 1 https://bugs.webkit.org/show_bug.cgi?id=88136 Reviewed by Darin Fisher. Export WebCore::Page::setDeviceScaleFactor and WebCore::Settings::setDefaultDeviceScaleFactor. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-06-04 Andy Estes Use ENABLE() and USE() macros in a few more places https://bugs.webkit.org/show_bug.cgi?id=88245 Reviewed by Anders Carlsson. * UIProcess/API/C/WKPluginSiteDataManager.cpp: Only include npapi.h if Netscape plug-in API is enabled. * UIProcess/mac/CorrectionPanel.h: Wrap with USE(AUTOCORRECTION_PANEL) * WebProcess/Authentication/AuthenticationManager.cpp: Use the stub version of tryUsePlatformCertificateInfoForChallenge if Security.framework isn't available. * WebProcess/WebProcess.messages.in: Only generate two messages if Security.framework is available. * WebProcess/mac/KeychainItemShimMethods.mm: Wrap with USE(SECURITY_FRAMEWORK). 2012-06-04 Andy Estes Add stub WebKit2 implementations of PLUGIN_PROXY_FOR_VIDEO methods declared in FrameLoaderClient https://bugs.webkit.org/show_bug.cgi?id=88244 Reviewed by Anders Carlsson. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::createMediaPlayerProxyPlugin): Add a stub implementation. (WebKit::WebFrameLoaderClient::hideMediaPlayerProxyPlugin): Ditto. (WebKit::WebFrameLoaderClient::showMediaPlayerProxyPlugin): Ditto. * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: 2012-06-04 Mario Sanchez Prada [GTK][WK2] Implement geolocation provider for the GTK port https://bugs.webkit.org/show_bug.cgi?id=83877 Reviewed by Carlos Garcia Campos. Add a new client-based geolocation provider for WebKit2GTK+, relying the new Geoclue-based geolocation provider available in WebCore. * GNUmakefile.am: * GNUmakefile.list.am: * UIProcess/API/gtk/WebKitGeolocationProvider.cpp: Added. (toGeolocationProvider): (startUpdatingCallback): (stopUpdatingCallback): (WebKitGeolocationProvider::~WebKitGeolocationProvider): (WebKitGeolocationProvider::create): (WebKitGeolocationProvider::WebKitGeolocationProvider): (WebKitGeolocationProvider::startUpdating): (WebKitGeolocationProvider::stopUpdating): (WebKitGeolocationProvider::notifyPositionChanged): (WebKitGeolocationProvider::notifyErrorOccurred): * UIProcess/API/gtk/WebKitGeolocationProvider.h: Added. * UIProcess/API/gtk/WebKitPrivate.h: * UIProcess/API/gtk/WebKitWebContext.cpp: (_WebKitWebContextPrivate): (createDefaultWebContext): 2012-06-04 Zalan Bujtas [Qt][WK2] Rename QtViewportInteractionEngine to QtViewportHandler. https://bugs.webkit.org/show_bug.cgi?id=88226 Reviewed by Kenneth Rohde Christiansen. * Target.pri: * UIProcess/API/qt/qquickwebpage_p_p.h: (WebKit): * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewFlickablePrivate::~QQuickWebViewFlickablePrivate): (QQuickWebViewFlickablePrivate::onComponentComplete): (QQuickWebViewFlickablePrivate::didChangeViewportProperties): (QQuickWebViewFlickablePrivate::updateViewportSize): (QQuickWebViewFlickablePrivate::pageDidRequestScroll): (QQuickWebViewFlickablePrivate::didChangeContentsSize): * UIProcess/API/qt/qquickwebview_p.h: (WebKit): * UIProcess/API/qt/qquickwebview_p_p.h: (WebKit): (QQuickWebViewPrivate::viewportHandler): (QQuickWebViewFlickablePrivate::viewportHandler): (QQuickWebViewFlickablePrivate): * UIProcess/API/qt/qwebkittest.cpp: (QWebKitTest::contentsScale): (QWebKitTest::devicePixelRatio): (QWebKitTest::initialScale): (QWebKitTest::minimumScale): (QWebKitTest::maximumScale): (QWebKitTest::isScalable): (QWebKitTest::layoutSize): * UIProcess/qt/QtGestureRecognizer.cpp: (WebKit::QtGestureRecognizer::viewportHandler): * UIProcess/qt/QtGestureRecognizer.h: (WebKit): * UIProcess/qt/QtPanGestureRecognizer.cpp: (WebKit::QtPanGestureRecognizer::update): (WebKit::QtPanGestureRecognizer::finish): (WebKit::QtPanGestureRecognizer::cancel): * UIProcess/qt/QtPinchGestureRecognizer.cpp: (WebKit::QtPinchGestureRecognizer::update): (WebKit::QtPinchGestureRecognizer::finish): (WebKit::QtPinchGestureRecognizer::cancel): * UIProcess/qt/QtViewportHandler.cpp: Copied from Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp. (WebKit::ViewportUpdateDeferrer::ViewportUpdateDeferrer): (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer): (ViewportUpdateDeferrer): (WebKit::QtViewportHandler::suspendPageContent): (WebKit::QtViewportHandler::resumePageContent): (WebKit::QtViewportHandler::cssScaleFromItem): (WebKit::QtViewportHandler::itemScaleFromCSS): (WebKit::QtViewportHandler::itemCoordFromCSS): (WebKit::QtViewportHandler::itemRectFromCSS): (WebKit::QtViewportHandler::QtViewportHandler): (WebKit::QtViewportHandler::~QtViewportHandler): (WebKit::QtViewportHandler::innerBoundedCSSScale): (WebKit::QtViewportHandler::outerBoundedCSSScale): (WebKit::QtViewportHandler::viewportAttributesChanged): (WebKit::QtViewportHandler::pageContentsSizeChanged): (WebKit::QtViewportHandler::setPageItemRectVisible): (WebKit::QtViewportHandler::animatePageItemRectVisible): (WebKit::QtViewportHandler::flickMoveStarted): (WebKit::QtViewportHandler::flickMoveEnded): (WebKit::QtViewportHandler::pageItemPositionChanged): (WebKit::QtViewportHandler::pageContentPositionRequested): (WebKit::QtViewportHandler::scaleAnimationStateChanged): (WebKit::QtViewportHandler::scaleAnimationValueChanged): (WebKit::QtViewportHandler::touchBegin): (WebKit::QtViewportHandler::touchEnd): (WebKit::QtViewportHandler::computePosRangeForPageItemAtScale): (WebKit::QtViewportHandler::focusEditableArea): (WebKit::QtViewportHandler::zoomToAreaGestureEnded): (WebKit::QtViewportHandler::nearestValidBounds): (WebKit::QtViewportHandler::setCSSScale): (WebKit::QtViewportHandler::currentCSSScale): (WebKit::QtViewportHandler::scrollAnimationActive): (WebKit::QtViewportHandler::panGestureActive): (WebKit::QtViewportHandler::panGestureStarted): (WebKit::QtViewportHandler::panGestureRequestUpdate): (WebKit::QtViewportHandler::panGestureEnded): (WebKit::QtViewportHandler::panGestureCancelled): (WebKit::QtViewportHandler::scaleAnimationActive): (WebKit::QtViewportHandler::cancelScrollAnimation): (WebKit::QtViewportHandler::interruptScaleAnimation): (WebKit::QtViewportHandler::pinchGestureActive): (WebKit::QtViewportHandler::pinchGestureStarted): (WebKit::QtViewportHandler::pinchGestureRequestUpdate): (WebKit::QtViewportHandler::pinchGestureEnded): (WebKit::QtViewportHandler::pinchGestureCancelled): (WebKit::QtViewportHandler::visibleContentsRect): (WebKit::QtViewportHandler::informVisibleContentChange): (WebKit::QtViewportHandler::viewportItemSizeChanged): (WebKit::QtViewportHandler::scaleContent): * UIProcess/qt/QtViewportHandler.h: Copied from Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h. (QtViewportHandler): * UIProcess/qt/QtViewportInteractionEngine.cpp: Removed. * UIProcess/qt/QtViewportInteractionEngine.h: Removed. * UIProcess/qt/QtWebPageEventHandler.cpp: (WebKit::QtWebPageEventHandler::QtWebPageEventHandler): (WebKit::QtWebPageEventHandler::setViewportHandler): (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged): (WebKit::QtWebPageEventHandler::doneWithTouchEvent): (WebKit::QtWebPageEventHandler::didFindZoomableArea): * UIProcess/qt/QtWebPageEventHandler.h: (WebKit): (QtWebPageEventHandler): (WebKit::QtWebPageEventHandler::viewportHandler): 2012-06-04 David Kilzer BUILD FIX: FeatureDefines.xcconfig should match across projects * Configurations/FeatureDefines.xcconfig: - Add missing ENABLE_LEGACY_CSS_VENDOR_PREFIXES. 2012-06-04 Allan Sandfeld Jensen [Qt] Tap-to-zoom overshoot animation. https://bugs.webkit.org/show_bug.cgi?id=87108 Reviewed by Tor Arne Vestbø. Reverts the change in animation, so the default is more "neutral". This should be made configurable later. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::animatePageItemRectVisible): 2012-06-04 Andras Becsi [Qt][WK2] Refactor the tap gesture recognizer https://bugs.webkit.org/show_bug.cgi?id=88096 Reviewed by Simon Hausmann. Refactor the tap gesture recognizer so that its internal state machine is self contained and independent of input event types. Also change the internal API for tap highlighting to make the code easier to understand on the caller side. This patch makes the tap gesture recognizer more robust, consistent with other gesture recognizers and fixes some issues related to highlighting and link activation with respect to native touch events. * UIProcess/qt/QtTapGestureRecognizer.cpp: (WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer): (WebKit::QtTapGestureRecognizer::withinDistance): (WebKit::QtTapGestureRecognizer::update): (WebKit::QtTapGestureRecognizer::finish): (WebKit::QtTapGestureRecognizer::cancel): (WebKit::QtTapGestureRecognizer::highlightTimeout): (WebKit::QtTapGestureRecognizer::singleTapTimeout): (WebKit::QtTapGestureRecognizer::tapAndHoldTimeout): (WebKit::QtTapGestureRecognizer::reset): * UIProcess/qt/QtTapGestureRecognizer.h: (QtTapGestureRecognizer): * UIProcess/qt/QtWebPageEventHandler.cpp: (WebKit::QtWebPageEventHandler::QtWebPageEventHandler): (WebKit::QtWebPageEventHandler::activateTapHighlight): (WebKit::QtWebPageEventHandler::deactivateTapHighlight): (WebKit): (WebKit::QtWebPageEventHandler::handleSingleTapEvent): (WebKit::QtWebPageEventHandler::handleDoubleTapEvent): (WebKit::QtWebPageEventHandler::doneWithTouchEvent): * UIProcess/qt/QtWebPageEventHandler.h: (QtWebPageEventHandler): 2012-06-02 Geoffrey Garen Try to fix the Windows build. * win/WebKit2.def: * win/WebKit2CFLite.def: 2012-06-02 Andy Estes [WebKit2] Use USE(), ENABLE(), and HAVE() macros in more places https://bugs.webkit.org/show_bug.cgi?id=88182 Reviewed by Sam Weinig. Use USE(APPKIT): * Shared/mac/NativeWebKeyboardEventMac.mm: * Shared/mac/NativeWebMouseEventMac.mm: * Shared/mac/NativeWebWheelEventMac.mm: * Shared/mac/WebEventFactory.h: * UIProcess/API/mac/WKTextInputWindowController.h: * UIProcess/API/mac/WKTextInputWindowController.mm: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: Use ENABLE(NETSCAPE_PLUGIN_API): * UIProcess/API/C/WKPluginSiteDataManager.cpp: (WKPluginSiteDataManagerClearSiteData): (WKPluginSiteDataManagerClearAllSiteData): Use USE(AUTOCORRECTION_PANEL): * UIProcess/API/mac/PageClientImpl.h: * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::showCorrectionPanel): (WebKit::PageClientImpl::dismissCorrectionPanel): (WebKit::PageClientImpl::dismissCorrectionPanelSoon): * UIProcess/mac/CorrectionPanel.mm: Use HAVE(HOSTED_CORE_ANIMATION): * UIProcess/mac/WebContextMac.mm: Put ENABLE(FULLSCREEN_API) in the right place: * UIProcess/mac/WebFullScreenManagerProxyMac.mm: Remove unnecessary use of USE(APPKIT): * UIProcess/mac/WebPageProxyMac.mm: Use USE(SECURITY_FRAMEWORK): * WebProcess/Authentication/mac/AuthenticationManager.mac.mm: Use ENABLE(CONTEXT_MENUS): * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: Use USE(SECURITY_FRAMEWORK): * WebProcess/WebProcess.h: Remove unnecessary use of USE(SECURITY_FRAMEWORK): * WebProcess/mac/WebProcessMac.mm: 2012-06-02 Andy Estes Remove a duplicate INIT() from WebSystemInterface.mm https://bugs.webkit.org/show_bug.cgi?id=88181 Reviewed by Anders Carlsson. * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): 2012-06-02 Andy Estes Remove unnecessary import of https://bugs.webkit.org/show_bug.cgi?id=88180 Reviewed by Sam Weinig. * UIProcess/mac/WKFullKeyboardAccessWatcher.h: 2012-06-02 Andy Estes Ensure cpu_type_t is defined by including https://bugs.webkit.org/show_bug.cgi?id=88178 Reviewed by Anders Carlsson. * Shared/Plugins/PluginModuleInfo.h: 2012-06-02 Sam Weinig InjectedBundles' sandbox extensions don't do what we think they do https://bugs.webkit.org/show_bug.cgi?id=88177 Reviewed by Anders Carlsson. This cannot be tested with our current infrastructure (or any modifications of the infrastructure I can think of) since it relies on the bundle being put outside the build directory where WebKit is put. * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp: (WebKit::InjectedBundle::load): Use SandboxExtension::consumePermanently() rather than consume(), otherwise, nulling out the SandboxExtension a few lines later invalidates the extension we just consumed. 2012-06-02 Dan Bernstein Reverted the last change. * WebKit2.xcodeproj/project.pbxproj: 2012-06-02 Dan Bernstein Stop treating two Python scripts as private headers. * WebKit2.xcodeproj/project.pbxproj: Removed model.py and parser.py from the Copy Headers build phase. 2012-06-02 Zeno Albisser Fix and enable WebGL for WebKit2 on Qt. https://bugs.webkit.org/show_bug.cgi?id=86214 Added glue code to make use of GraphicsSurface as a backend for the webgl-canvas in case of WK2. Reviewed by Noam Rosenthal. * UIProcess/API/qt/qwebpreferences.cpp: (QWebPreferencesPrivate::testAttribute): (QWebPreferencesPrivate::setAttribute): (QWebPreferences::webGLEnabled): (QWebPreferences::setWebGLEnabled): * UIProcess/API/qt/qwebpreferences_p.h: * UIProcess/API/qt/qwebpreferences_p_p.h: Added WebGLEnabled enum to allow enabling/disabling of WebGL using QWebPreferences. * UIProcess/LayerTreeHostProxy.cpp: (WebKit::LayerTreeHostProxy::syncCanvas): Dispatch syncCanvas calls to the apropriate WebLayerTreeRenderer. * UIProcess/LayerTreeHostProxy.h: (LayerTreeHostProxy): * UIProcess/LayerTreeHostProxy.messages.in: * UIProcess/WebLayerTreeRenderer.h: (WebLayerTreeRenderer): * UIProcess/WebLayerTreeRenderer.cpp: (WebKit::WebLayerTreeRenderer::syncCanvas): (WebKit::WebLayerTreeRenderer::deleteLayer): (WebKit::WebLayerTreeRenderer::purgeGLResources): Create a TextureMapperSurfaceBackingStore for the canvas if necessary and pass or update the graphicsSurfaceToken for to be used with the backing store. * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp: (WebCore::WebGraphicsLayer::WebGraphicsLayer): (WebCore): (WebCore::WebGraphicsLayer::setContentsToCanvas): (WebCore::WebGraphicsLayer::syncCanvas): Copy the multisample framebuffer contents onto the GraphicsSurface. Notify the UIProcess of the availability of a new texture. (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly): Sync the canvas as well. * WebProcess/WebCoreSupport/WebGraphicsLayer.h: Added a pure virtual function syncCanvas. This is guarded by PLATFORM(QT). (WebGraphicsLayerClient): (WebGraphicsLayer): * WebProcess/WebPage/qt/LayerTreeHostQt.cpp: (WebKit::LayerTreeHostQt::syncLayerChildren): (WebKit): (WebKit::LayerTreeHostQt::syncCanvas): * WebProcess/WebPage/qt/LayerTreeHostQt.h: (LayerTreeHostQt): 2012-06-01 Brady Eidson and https://bugs.webkit.org/show_bug.cgi?id=88119 REGRESSION (r99448) Zero-sized plug-ins no longer get an NPP_SetWindow call Followup to r119260 Rubber-stamped by Anders Carlsson. * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::callSetWindow): Set the m_hasCalledSetWindow here... (WebKit::NetscapePlugin::geometryDidChange): ...instead of here. 2012-06-01 Brady Eidson and https://bugs.webkit.org/show_bug.cgi?id=88119 REGRESSION (r99448) Zero-sized plug-ins no longer get an NPP_SetWindow call Reviewed by Oliver Hunt. Add a flag to NetscapePlugin to track whether or not NPP_SetWindow has ever been called. Check this flag in geometryDidChange to make sure every plug-in gets the call at least once. "Everybody gets one. Tell him, Peter." "Apparently everybody gets one." "Bingo." * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::NetscapePlugin): (WebKit::NetscapePlugin::geometryDidChange): * WebProcess/Plugins/Netscape/NetscapePlugin.h: (NetscapePlugin): 2012-06-01 Dinu Jacob [WK2] WebLayerTreeRenderer::setContentsSize called synchronously https://bugs.webkit.org/show_bug.cgi?id=88091 Reviewed by Noam Rosenthal. Do not call WebLayerTreeRenderer::setContentsSize synchronously from LayerTreeHostProxy. * UIProcess/LayerTreeHostProxy.cpp: (WebKit::LayerTreeHostProxy::setContentsSize): 2012-06-01 Dinu Jacob [Qt][WK2] Set QWebKitTest::isScalable default as false https://bugs.webkit.org/show_bug.cgi?id=88095 Reviewed by Tor Arne Vestbø. Set QWebKitTest::isScalable default as false * UIProcess/API/qt/qwebkittest.cpp: (QWebKitTest::isScalable): 2012-06-01 Allan Sandfeld Jensen [Qt] Remove QtViewportInteractionEngine::pageItemSizeChanged. https://bugs.webkit.org/show_bug.cgi?id=88082 Reviewed by Kenneth Rohde Christiansen. The function was causing flickering, and after testing it was verified that it was no longer needed either. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine): * UIProcess/qt/QtViewportInteractionEngine.h: (QtViewportInteractionEngine): 2012-06-01 Dinu Jacob [Qt][WK2] Contents not rendered in MiniBrowser for some pages https://bugs.webkit.org/show_bug.cgi?id=87922 Reviewed by Kenneth Rohde Christiansen. Set drawing area visible contents rect if new visible contents rect is different from the previous one. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::informVisibleContentChange): * UIProcess/qt/QtViewportInteractionEngine.h: (QtViewportInteractionEngine): 2012-06-01 Kenneth Rohde Christiansen [Qt] Move suspension to QtViewportInteractionEngine https://bugs.webkit.org/show_bug.cgi?id=88078 Reviewed by Simon Hausmann. Next step is to take care of visibility changes. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate): (QQuickWebViewFlickablePrivate::onComponentComplete): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): (QQuickWebViewFlickablePrivate): * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::ViewportUpdateDeferrer::ViewportUpdateDeferrer): (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer): (WebKit::QtViewportInteractionEngine::suspendPageContent): (WebKit): (WebKit::QtViewportInteractionEngine::resumePageContent): * UIProcess/qt/QtViewportInteractionEngine.h: (QtViewportInteractionEngine): 2012-06-01 Dinu Jacob [Qt][W2] Qml Error in ViewportInfoItem.qml in MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=87999 Reviewed by Kenneth Rohde Christiansen. Return default viewport attributes rather than invalid QVariant. * UIProcess/API/qt/qwebkittest.cpp: (QWebKitTest::contentsScale): (QWebKitTest::devicePixelRatio): (QWebKitTest::initialScale): (QWebKitTest::minimumScale): (QWebKitTest::maximumScale): (QWebKitTest::isScalable): (QWebKitTest::layoutSize): 2012-05-31 Kenneth Rohde Christiansen [Qt] Clean up our viewport handling mess https://bugs.webkit.org/show_bug.cgi?id=87977 Reviewed by Simon Hausmann. Consolidated functionality from QQuickWebViewPrivate* into ViewportInteractionEngine that belongs there, in preparation for renaming ViewportInteractionEngine in the future. Remove unneeded methods and move others to private. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate): (QQuickWebViewFlickablePrivate::onComponentComplete): (QQuickWebViewFlickablePrivate::didChangeViewportProperties): (QQuickWebViewFlickablePrivate::updateViewportSize): (QQuickWebViewFlickablePrivate::_q_resume): (QQuickWebViewFlickablePrivate::pageDidRequestScroll): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): (QQuickWebViewFlickablePrivate): * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer): (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine): (WebKit::QtViewportInteractionEngine::viewportAttributesChanged): (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged): (WebKit::QtViewportInteractionEngine::pageItemPositionChanged): (WebKit::QtViewportInteractionEngine::pageContentPositionRequested): (WebKit::QtViewportInteractionEngine::visibleContentsRect): (WebKit): (WebKit::QtViewportInteractionEngine::informVisibleContentChange): (WebKit::QtViewportInteractionEngine::viewportItemSizeChanged): * UIProcess/qt/QtViewportInteractionEngine.h: (WebKit): (QtViewportInteractionEngine): 2012-05-31 Hajime Morrita REGRESSION(r117572): editing/spelling/spellcheck-async-remove-frame.html crashes on Mac https://bugs.webkit.org/show_bug.cgi?id=86859 Reviewed by Ryosuke Niwa. * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::requestCheckingOfString): * WebProcess/WebCoreSupport/WebEditorClient.h: 2012-05-31 Andy Estes [WebKit2] Remove nested #if conditions from messages.in files https://bugs.webkit.org/show_bug.cgi?id=88039 Reviewed by Filip Pizlo. The code generator that processes messages.in files can't handle nested #if conditions. Sadly I added said conditions in r117700 but failed to verify the generated result. Un-nest the conditions I added. * UIProcess/WebPageProxy.messages.in: * WebProcess/WebPage/WebPage.messages.in: 2012-05-31 Andy Estes Disentangle code that relies on USE(AUTOMATIC_TEXT_REPLACEMENT) from that which merely relies on PLATFORM(MAC) https://bugs.webkit.org/show_bug.cgi?id=87933 Reviewed by Dan Bernstein. * WebProcess/WebCoreSupport/WebEditorClient.h: * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: 2012-05-31 Carlos Garcia Campos [GTK] Add webkit_download_get_request to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=87957 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitDownload.cpp: (webkit_download_get_request): Return the WebKitURIRequest representing the request that originated the download. * UIProcess/API/gtk/WebKitDownload.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol. * UIProcess/API/gtk/tests/TestDownloads.cpp: (testDownloadLocalFile): (testDownloadRemoteFile): 2012-05-31 Carlos Garcia Campos [SOUP] WebProcess crashes when a download is started from an existing ResourceHandle https://bugs.webkit.org/show_bug.cgi?id=87953 Reviewed by Martin Robinson. The output stream to write the downloaded data is created in the didReceiveResponse callback of the download client. When a download is created for an existing ResourceHandle (this happens for example when policy decision is download), the response has already been received. In this case we should make sure that the download client is notified about the response, so that when data actually arrives the output stream has already been created. * WebProcess/Downloads/soup/DownloadSoup.cpp: (WebKit::Download::startWithHandle): 2012-05-31 Carlos Garcia Campos [GTK] Fix webkit_web_view_can_execute_editing_command() API doc https://bugs.webkit.org/show_bug.cgi?id=87930 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitWebView.cpp: 2012-05-31 Tor Arne Vestbø [Qt] Simplify QT_VERSION_CHECKS for Qt5 by introducing HAVE(QT5) https://bugs.webkit.org/show_bug.cgi?id=87955 Reviewed by Simon Hausmann. * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp: 2012-05-31 Zalan Bujtas [Qt][WK2] Add missing ViewportUpdateDeferrer guarding to setPageItemRectVisible() calls. https://bugs.webkit.org/show_bug.cgi?id=87936 Reviewed by Kenneth Rohde Christiansen. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::viewportAttributesChanged): (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged): 2012-05-31 Keunsoon Lee [EFL][WK2] Add WKURLRequestEfl and WKURLResponseEfl https://bugs.webkit.org/show_bug.cgi?id=70231 Reviewed by Chang Shu. These codes can be used for WKPageDecidePolicyForResponseCallback on page policy callbacks. The callback conveys WKURLResponseRef and WKURLRequestRef as parameter. By the way, EFL browser needs content type from response to decide correct policy. Another information, cookie, is necessary with similar reason. But, there is no way to obtain such information on WebKit2 main stream, except for WKURLRequestCopyURL(). So, EFL port created those files to extract necessary information from WKURLResponseRef and WKURLRequestRef, and not to desturb WebKit2 main stream. * Shared/API/c/efl/WKURLRequestEfl.cpp: Added. (WKURLRequestEflCopyCookies): extracting cookie information from WKURLRequestRef. * Shared/API/c/efl/WKURLRequestEfl.h: Added. * Shared/API/c/efl/WKURLResponseEfl.cpp: Added. (WKURLResponseEflCopyContentType): extracting content type (i.e. MIME type) from WKURLResponseRef. * Shared/API/c/efl/WKURLResponseEfl.h: Added. * Shared/efl/WebCoreArgumentCodersEfl.cpp: Added. (CoreIPC): (CoreIPC::::encode): (CoreIPC::::decode): * Shared/efl/WebURLRequestEfl.cpp: Added. (WebKit): (WebKit::WebURLRequestEfl::WebURLRequestEfl): (WebKit::WebURLRequestEfl::cookies): obtaining cookie information from ResourceRequest. * Shared/efl/WebURLRequestEfl.h: Added. (WebKit): (WebURLRequestEfl): (WebKit::WebURLRequestEfl::create): * Shared/efl/WebURLResponseEfl.cpp: Added. (WebKit): (WebKit::WebURLResponseEfl::WebURLResponseEfl): (WebKit::WebURLResponseEfl::contentType): obtaining content type (i.e. MIME type) from ResourceResponse. * Shared/efl/WebURLResponseEfl.h: Added. (WebKit): (WebURLResponseEfl): (WebKit::WebURLResponseEfl::create): 2012-05-31 Gyuyoung Kim [EFL][WK2] Rename ewk_private.h to ewk_view_private.h https://bugs.webkit.org/show_bug.cgi?id=87923 Reviewed by Kenneth Rohde Christiansen. EFL WK1 decided to divide up ewk_private.h into each file's XXX_private.h file in order to maintain internal functions more easily. EFL WK2 needs to adjust this as well. * UIProcess/API/efl/PageClientImpl.cpp: * UIProcess/API/efl/ewk_view_private.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_private.h. (WebCore): * UIProcess/cairo/BackingStoreCairo.cpp: 2012-05-31 Andy Estes Move the specification of framework and library linking out of WebKit2.xcodeproj and into WebKit2.xcconfig https://bugs.webkit.org/show_bug.cgi?id=87932 Reviewed by Dan Bernstein. Doing this makes it easier to vary linking based on SDK or other factors. * Configurations/WebKit2.xcconfig: Create FRAMEWORK_AND_LIBRARY_LDFLAGS, which specifies the same list of frameworks and libraries that were previously in WebKit2's 'Link Binary With Libraries' build phase, and append it to $(OTHER_LDFLAGS). * WebKit2.xcodeproj/project.pbxproj: Remove all frameworks and libraries from the 'Link Binary With Libraries' build phase. 2012-05-30 Sudarsana Nagineni [GTK] [WK2] Memory leak in webkitWebViewBaseStartDrag https://bugs.webkit.org/show_bug.cgi?id=87756 Reviewed by Carlos Garcia Campos. Fixed memory leaks in drag and drop by using adoptRef instead of just getting new references. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseStartDrag): 2012-05-30 Luiz Agostini [Qt] handled touchmove events should not cancel tap gesture recognition https://bugs.webkit.org/show_bug.cgi?id=87808 Reviewed by Kenneth Rohde Christiansen. Tap gesture recognition should not be canceled if a touchmove event is handled by the web process. * UIProcess/qt/QtWebPageEventHandler.cpp: (WebKit::QtWebPageEventHandler::doneWithTouchEvent): 2012-05-30 Mario Sanchez Prada [GTK][WK2] Errors in documentation about webkit_web_view_run_javascript() https://bugs.webkit.org/show_bug.cgi?id=87866 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitWebView.cpp: Fix errors. 2012-05-30 Andy Estes WebProcessMainMac.mm doesn't need to import WKView.h. Rubber-stamped by Anders Carlsson. * WebProcess/mac/WebProcessMainMac.mm: 2012-05-30 Marcelo Lira WebKit2: Implement layoutTestController.setPluginsEnabled() in WebKitTestRunner. https://bugs.webkit.org/show_bug.cgi?id=58593 Adds the ability to change the pluginsEnabled flag in WebCore::Settings to WebKitTestRunner's LayoutTestController. The flag is modified via the public C API of the WebProcess. Reviewed by Darin Adler. * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleSetPluginsEnabled): * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::setPluginsEnabled): Calls the setPluginsEnabled method for the WebCore::Settings of each WebCore::Page in the current page group. (WebKit): * WebProcess/InjectedBundle/InjectedBundle.h: (InjectedBundle): 2012-05-30 Caio Marcelo de Oliveira Filho HashTable.h has using directives for std::pair and std::make_pair https://bugs.webkit.org/show_bug.cgi?id=29919 Reviewed by Darin Adler. Change code to use std::pair and std::make_pair. * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm: (WebKit::DynamicLinkerEnvironmentExtractor::processEnvironmentVariable): * UIProcess/WebContext.cpp: (WebKit::WebContext::postMessageToInjectedBundle): 2012-05-30 Kenneth Rohde Christiansen Unreviewed: Fix wrongly typed Qt slot. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine): 2012-05-30 Kenneth Rohde Christiansen [Qt] Move ViewportAttribute related methods to the interaction engine. https://bugs.webkit.org/show_bug.cgi?id=87855 Reviewed by Simon Hausmann. Move the logic of didChange{ViewportProperties|ContentsSize} to the interaction engine and update our testing object. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewLegacyPrivate::QQuickWebViewLegacyPrivate): (QQuickWebViewFlickablePrivate::didChangeViewportProperties): (QQuickWebViewFlickablePrivate::didChangeContentsSize): * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): * UIProcess/API/qt/qwebkittest.cpp: (QWebKitTest::contentsScale): (QWebKitTest::devicePixelRatio): (QWebKitTest::initialScale): (QWebKitTest::minimumScale): (QWebKitTest::maximumScale): (QWebKitTest::isScalable): (QWebKitTest::layoutSize): * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::viewportAttributesChanged): (WebKit): (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged): * UIProcess/qt/QtViewportInteractionEngine.h: (QtViewportInteractionEngine): 2012-05-30 Kenneth Rohde Christiansen [Qt] Do renames in ViewportInteractionEngine as agreed upon https://bugs.webkit.org/show_bug.cgi?id=87845 Reviewed by Simon Hausmann. Mostly moving methods around and renaming them to be more consistent and avoid terminology clashes. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewFlickablePrivate::didChangeViewportProperties): (QQuickWebViewFlickablePrivate::pageDidRequestScroll): (QQuickWebViewFlickablePrivate::didChangeContentsSize): * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::boundPosition): (WebKit): (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine): (WebKit::QtViewportInteractionEngine::setPageItemRectVisible): (WebKit::QtViewportInteractionEngine::animatePageItemRectVisible): (WebKit::QtViewportInteractionEngine::flickMoveStarted): (WebKit::QtViewportInteractionEngine::flickMoveEnded): (WebKit::QtViewportInteractionEngine::pageItemPositionChanged): (WebKit::QtViewportInteractionEngine::pageContentPositionRequest): (WebKit::QtViewportInteractionEngine::scaleAnimationValueChanged): (WebKit::QtViewportInteractionEngine::computePosRangeForPageItemAtScale): (WebKit::QtViewportInteractionEngine::focusEditableArea): (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded): (WebKit::QtViewportInteractionEngine::nearestValidBounds): (WebKit::QtViewportInteractionEngine::cancelScrollAnimation): (WebKit::QtViewportInteractionEngine::pinchGestureEnded): (WebKit::QtViewportInteractionEngine::pageItemSizeChanged): * UIProcess/qt/QtViewportInteractionEngine.h: (WebKit::QtViewportInteractionEngine::setDevicePixelRatio): (QtViewportInteractionEngine): 2012-05-30 Mariusz Grzegorczyk , Ryuan Choi [EFL][WK2] Fix WebKit2-EFL build https://bugs.webkit.org/show_bug.cgi?id=83693 Reviewed by Carlos Garcia Campos. * CMakeLists.txt: Move IDL generator codes to generate port specific *.messages.in. * PlatformEfl.cmake: Add soup related files after r115411 and includes to fix build break. * UIProcess/API/efl/PageClientImpl.cpp: Fix build break with ENABLE_TOUCH_EVENTS. (WebKit): (WebKit::PageClientImpl::doneWithTouchEvent): * UIProcess/API/efl/PageClientImpl.h: (PageClientImpl): * WebProcess/WebCoreSupport/WebChromeClient.cpp: Fix build break with ENABLE_INPUT_TYPE_COLOR and ENABLE_REGISTER_PROTOCOL_HANDLER. (WebKit): (WebKit::WebChromeClient::createColorChooser): * WebProcess/WebCoreSupport/WebChromeClient.h: (WebChromeClient): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: Fix build break with ENABLE_WEB_INTENTS (WebKit): (WebKit::WebFrameLoaderClient::dispatchIntent): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: (WebCore): (WebFrameLoaderClient): * WebProcess/WebProcess.cpp: Guard PLATFORM_STRATEGIES codes. (WebKit::WebProcess::didGetPlugins): * WebProcess/soup/WebSoupRequestManager.cpp: Try to share with EFL port. (WebKit::WebSoupRequestManager::didHandleURIRequest): 2012-05-30 Kenneth Rohde Christiansen [Qt] Variable renaming as preparation of further refactoring. Rubberstamped by Simon Hausmann. Change m_viewport to m_viewportItem and m_content to m_pageItem. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine): (WebKit::QtViewportInteractionEngine::setItemRectVisible): (WebKit::QtViewportInteractionEngine::animateItemRectVisible): (WebKit::QtViewportInteractionEngine::flickableMoveStarted): (WebKit::QtViewportInteractionEngine::flickableMoveEnded): (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate): (WebKit::QtViewportInteractionEngine::scaleAnimationStateChanged): (WebKit::QtViewportInteractionEngine::pagePositionRequest): (WebKit::QtViewportInteractionEngine::computePosRangeForItemAtScale): (WebKit::QtViewportInteractionEngine::focusEditableArea): (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded): (WebKit::QtViewportInteractionEngine::nearestValidBounds): (WebKit::QtViewportInteractionEngine::reset): (WebKit::QtViewportInteractionEngine::setCSSScale): (WebKit::QtViewportInteractionEngine::currentCSSScale): (WebKit::QtViewportInteractionEngine::scrollAnimationActive): (WebKit::QtViewportInteractionEngine::panGestureActive): (WebKit::QtViewportInteractionEngine::panGestureStarted): (WebKit::QtViewportInteractionEngine::panGestureRequestUpdate): (WebKit::QtViewportInteractionEngine::panGestureEnded): (WebKit::QtViewportInteractionEngine::panGestureCancelled): (WebKit::QtViewportInteractionEngine::cancelScrollAnimation): (WebKit::QtViewportInteractionEngine::pinchGestureStarted): (WebKit::QtViewportInteractionEngine::pinchGestureRequestUpdate): (WebKit::QtViewportInteractionEngine::scaleContent): * UIProcess/qt/QtViewportInteractionEngine.h: (QtViewportInteractionEngine): 2012-05-30 Zalan Bujtas [Qt][WK2] Do not use anonymous variables for ViewportUpdateDeferrer. https://bugs.webkit.org/show_bug.cgi?id=87831 Reviewed by Kenneth Rohde Christiansen. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::pagePositionRequest): (WebKit::QtViewportInteractionEngine::cancelScrollAnimation): (WebKit::QtViewportInteractionEngine::itemSizeChanged): 2012-05-30 Carlos Garcia Campos Unreviewed. Fix WebKit2GTK+ API tests in the bots. * UIProcess/API/gtk/tests/TestWebKitWebView.cpp: (testWebViewCanShowMIMEType): Remove the check for multimedia and plugins MIME types since they depend on the configuration and they are not available in the bots. 2012-05-29 Jer Noble Noticeable delay taking an HTML5 trailer fullscreen. https://bugs.webkit.org/show_bug.cgi?id=87794 Reviewed by Darin Adler. Work around a not-entirely understood delay when using the results of a CGWindowListCreateImage() call as the contents of a placeholder view. The backing of the resulting CGImageRef resides on the WindowServer, and drawing that image requires synchronous calls to the WindowServer process. By copying the image data, up front, into our own process, we can avoid those synchronous calls later and avoid the delay-causing drawing behavior. * UIProcess/mac/WKFullScreenWindowController.mm: (CGImageDeepCopy): Added a helper function which copies the image data into a new CGImage. (-[WKFullScreenWindowController enterFullScreen:]): Use the above. 2012-05-29 Sudarsana Nagineni [GTK] [WK2] Reproducible crash in performDragControllerAction https://bugs.webkit.org/show_bug.cgi?id=87744 Reviewed by Martin Robinson. Fix a crash by using deref() instead of delete to dereference and release the platformData of DragData. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::performDragControllerAction): 2012-05-29 Simon Pena [GTK] Missing field initializers for WKPageLoaderClient and WKPageUIClient https://bugs.webkit.org/show_bug.cgi?id=87745 Reviewed by Carlos Garcia Campos. Add missing initializers for WKPageLoaderClient and WKPageUIClient, for callbacks WKPagePluginDidFailCallback and WKPageUnavailablePluginButtonClickedCallback, introduced in revision r116716. * UIProcess/API/gtk/WebKitLoaderClient.cpp: (attachLoaderClientToView): Initialize WKPagePluginDidFailCallback * UIProcess/API/gtk/WebKitUIClient.cpp: (attachUIClientToView): Initialize callback WKPageUnavailablePluginButtonClickedCallback 2012-05-29 Carlos Garcia Campos [GTK] Policy decision headers are not included in the main webkit2.h header https://bugs.webkit.org/show_bug.cgi?id=87753 Reviewed by Martin Robinson. * UIProcess/API/gtk/webkit2.h: Include WebKitNavigationPolicyDecision.h and WebKitResponsePolicyDecision.h. 2012-05-29 Carlos Garcia Campos [GTK] Add webkit_web_view_can_show_mime_type() to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=85998 Reviewed by Martin Robinson. And use it in the default handler of WebKitWebView::decide-policy signal to decide whether to use or ignore a response policy decision depending on whether the mime type of the response can be displayed in the WebView or not. * UIProcess/API/gtk/WebKitURIResponse.cpp: (webkitURIResponseGetProperty): Add getter for mime-type property. (webkit_uri_response_class_init): Add mime-type property. (webkit_uri_response_get_mime_type): Return the mime type of the response. * UIProcess/API/gtk/WebKitURIResponse.h: * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewDecidePolicy): In case of response policy decisions, use the URI response to decide what to do: download if the response is an attachment, use if the mime type is supported by the web view or ignore otherwise. (webkit_web_view_can_show_mime_type): Returns whether the given mime type can be displayed in the WebView or not. * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols. * UIProcess/API/gtk/tests/TestResources.cpp: (testWebResourceResponse): (testWebResourceMimeType): (serverCallback): (beforeAll): * UIProcess/API/gtk/tests/TestWebKitWebView.cpp: (testWebViewCanShowMIMEType): (beforeAll): 2012-05-29 David Barr Introduce ENABLE_CSS_IMAGE_RESOLUTION compile flag https://bugs.webkit.org/show_bug.cgi?id=87685 Reviewed by Eric Seidel. Add a configuration option for CSS image-resolution support, disabling it by default. * Configurations/FeatureDefines.xcconfig: 2012-05-29 Kenneth Rohde Christiansen [Qt] Move tests from DesktopBehavior which can be made to work https://bugs.webkit.org/show_bug.cgi?id=87736 Rubberstamped by Simon Hausmann. Move and modify the following tests to WebView/ and make them use touch events. * UIProcess/API/qt/tests/qmltests/WebView/tst_itemSelector.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml. * UIProcess/API/qt/tests/qmltests/WebView/tst_messaging.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_messaging.qml. * UIProcess/API/qt/tests/qmltests/WebView/tst_multiFileUpload.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_multiFileUpload.qml. * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_singleFileUpload.qml. 2012-05-29 Tor Arne Vestbø [Qt] Sync up favicon-implementation with WebView url changes in r118158 https://bugs.webkit.org/show_bug.cgi?id=87133 We now base64-encode the page url in the image-provider url, so that any normalization done by QUrl will not mess up the page-url. The logic of creating and parsing the provider-url has been moved into the image provider, to keep it in one place. We were also releasing icons (even ones we hadn't retained), which we can't do since we don't know when the icon url is no longer in use. Reviewed-by Simon Hausmann. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::initialize): (QQuickWebViewPrivate::loadProgressDidChange): (QQuickWebViewPrivate::_q_onUrlChanged): (QQuickWebViewPrivate::_q_onIconChangedForPageURL): (QQuickWebViewPrivate::updateIcon): (QQuickWebView::icon): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): * UIProcess/API/qt/qwebiconimageprovider.cpp: (QWebIconImageProvider::iconURLForPageURLInContext): (QWebIconImageProvider::requestImage): * UIProcess/API/qt/qwebiconimageprovider_p.h: (WebKit): * UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml: * UIProcess/qt/QtWebIconDatabaseClient.cpp: (WebKit::QtWebIconDatabaseClient::didChangeIconForPageURL): (WebKit::QtWebIconDatabaseClient::iconForPageURL): (WebKit): (WebKit::QtWebIconDatabaseClient::iconImageForPageURL): * UIProcess/qt/QtWebIconDatabaseClient.h: (QtWebIconDatabaseClient): 2012-05-29 Kenneth Rohde Christiansen [Qt][WK2] Fix failing qmltests::FitToView::test_basic() https://bugs.webkit.org/show_bug.cgi?id=87236 Reviewed by Simon Hausmann. The fix is a combination of things. First of all some events were emitted at the wrong times or when nothing had changed. We also initialized the view saying it was suspended which is not correct. Another bug was that the touch tap, didn't result in marking the view as having user interaction. This was recently fixed in r118493. * UIProcess/API/qt/qquickwebpage.cpp: (QQuickWebPage::setContentsScale): * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate): Make sure pageIsSuspended is initialized to false. (QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange): Early bail out if there is no change. Inform contentScaleCommitted if the scale changed since last time. (QQuickWebViewFlickablePrivate::didChangeContentsSize): Make sure to commit the right signals, ie. *Changed and not *Committed. * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qwebkittest.cpp: (touchPoint): (QWebKitTest::sendTouchEvent): (QWebKitTest::touchTap): (QWebKitTest::touchDoubleTap): Add proper touch emulation for the testing system. Call directly to our WebKit API (avoid Qt event loop) to ensure all events gets delivered. * UIProcess/API/qt/qwebkittest_p.h: * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::setItemRectVisible): Assert that a ViewportUpdateDeferrer is always used when calling this method. (WebKit::QtViewportInteractionEngine::animateItemRectVisible): Remove work around now we have the proper fix in place. (WebKit::QtViewportInteractionEngine::pagePositionRequest): Do not send the informVisibleContentChange manually, use the ViewportUpdateDeferrer instead. (WebKit::QtViewportInteractionEngine::cancelScrollAnimation): Add missing ViewportUpdateDeferrer. (WebKit::QtViewportInteractionEngine::pinchGestureStarted): No reason to emit informVisibleContentChange before pinch start, as it is always done on end (due to the ViewportUpdateDeferrer). (WebKit::QtViewportInteractionEngine::itemSizeChanged): Add missing ViewportUpdateDeferrer. 2012-05-29 Caio Marcelo de Oliveira Filho [Qt] [WK2] Allow user to inject JS scripts when the page loads https://bugs.webkit.org/show_bug.cgi?id=85827 Reviewed by Simon Hausmann. Create a new experimental property to list URLs of JS scripts that should be loaded when a page is loaded. These scripts will run in the normal JS environment of the page. The supported URL schemes are file:/// and qrc:///. The scripts are read from the UI process and transfered to the Web process. Together with the experimental messaging API this provides a way for the application to manipulate the DOM (by injecting a script that does the manipulation and communicating with it via postMessage). This covers some of the use cases of QWebElement in our WK1 API. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::didRelaunchProcess): (readUserScript): (QQuickWebViewPrivate::updateUserScripts): (QQuickWebViewExperimental::userScripts): (QQuickWebViewExperimental::setUserScripts): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): * UIProcess/API/qt/tests/qmltests/WebView.pro: * UIProcess/API/qt/tests/qmltests/WebView/tst_userScripts.qml: Added. * UIProcess/API/qt/tests/qmltests/common/append-document-title.js: Added. * UIProcess/API/qt/tests/qmltests/common/big-user-script.js: Added. * UIProcess/API/qt/tests/qmltests/common/change-document-title.js: Added. * UIProcess/API/qt/tests/qmltests/resources.qrc: Added. * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/qt/WebPageProxyQt.cpp: (WebKit::WebPageProxy::setUserScripts): (WebKit): * WebProcess/WebPage/WebPage.h: (WebPage): * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/qt/WebPageQt.cpp: (WebKit::WebPage::setUserScripts): (WebKit): 2012-05-29 Sheriff Bot Unreviewed, rolling out r118752. http://trac.webkit.org/changeset/118752 https://bugs.webkit.org/show_bug.cgi?id=87731 incomplete patch (Requested by cmarcelo on #webkit). * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::didRelaunchProcess): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): * UIProcess/API/qt/tests/qmltests/WebView.pro: * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/qt/WebPageProxyQt.cpp: * WebProcess/WebPage/WebPage.h: (WebPage): * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/qt/WebPageQt.cpp: 2012-05-21 Caio Marcelo de Oliveira Filho [Qt] [WK2] Allow user to inject JS scripts when the page loads https://bugs.webkit.org/show_bug.cgi?id=85827 Reviewed by Simon Hausmann. Create a new experimental property to list URLs of JS scripts that should be loaded when a page is loaded. These scripts will run in the normal JS environment of the page. The supported URL schemes are file:/// and qrc:///. The scripts are read from the UI process and transfered to the Web process. Together with the experimental messaging API this provides a way for the application to manipulate the DOM (by injecting a script that does the manipulation and communicating with it via postMessage). This covers some of the use cases of QWebElement in our WK1 API. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::didRelaunchProcess): (readUserScript): (QQuickWebViewPrivate::updateUserScripts): (QQuickWebViewExperimental::userScripts): (QQuickWebViewExperimental::setUserScripts): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate): * UIProcess/API/qt/tests/qmltests/WebView.pro: * UIProcess/API/qt/tests/qmltests/WebView/tst_userScripts.qml: Added. * UIProcess/API/qt/tests/qmltests/common/append-document-title.js: Added. * UIProcess/API/qt/tests/qmltests/common/big-user-script.js: Added. * UIProcess/API/qt/tests/qmltests/common/change-document-title.js: Added. * UIProcess/API/qt/tests/qmltests/resources.qrc: Added. * UIProcess/WebPageProxy.h: (WebPageProxy): * UIProcess/qt/WebPageProxyQt.cpp: (WebKit::WebPageProxy::setUserScripts): (WebKit): * WebProcess/WebPage/WebPage.h: (WebPage): * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/qt/WebPageQt.cpp: (WebKit::WebPage::setUserScripts): (WebKit): 2012-05-29 Carlos Garcia Campos [GTK] Add return value information to WebKitWebView::load-failed signal documentation https://bugs.webkit.org/show_bug.cgi?id=87704 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_class_init): 2012-05-29 Carlos Garcia Campos [GTK] Add WebKitWebInspector.h to the list of WebKit2 GTK public headers https://bugs.webkit.org/show_bug.cgi?id=87703 Reviewed by Martin Robinson. * GNUmakefile.list.am: Add WebKitWebInspector.h to webkit2gtk_h_api. 2012-05-25 Jesus Sanchez-Palencia WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled https://bugs.webkit.org/show_bug.cgi?id=42328 Reviewed by Eric Seidel. Removed unneeded setJavaScriptProfilingEnabled function from WTR after its move to windows.internals.settings. * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp: * WebProcess/InjectedBundle/API/c/WKBundleInspector.h: * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::setJavaScriptProfilingEnabled): * win/WebKit2.def: 2012-05-28 No'am Rosenthal Remove unused argument coders for animation https://bugs.webkit.org/show_bug.cgi?id=87435 Reviewed by Sam Weinig. Left the used argument coders only, behind a proper USE(UI_SIDE_COMPOSITING) flag. * Shared/WebCoreArgumentCoders.cpp: (CoreIPC): * Shared/WebCoreArgumentCoders.h: 2012-05-28 Gyuyoung Kim Move allowRoundingHacks to Internals interface https://bugs.webkit.org/show_bug.cgi?id=87328 Reviewed by Hajime Morita. * win/WebKit2.def: Add setAllowsRoundingHacks() to symbol filter. 2012-05-26 Geoffrey Garen WebKit should be lazy-finalization-safe (esp. the DOM) v2 https://bugs.webkit.org/show_bug.cgi?id=87581 Reviewed by Oliver Hunt. * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::destroy): (WebKit::JSNPObject::leakNPObject): * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: (WebKit::NPRuntimeObjectMap::finalize): Use static_cast instead of jsCast because jsCast does Structure-based validation, and our Structure is not guaranteed to be alive when we get finalized. 2012-05-25 Maciej Stachowiak REGRESSION (r116720): Subframe PDF scrolls extremely slowly https://bugs.webkit.org/show_bug.cgi?id=87557 Reviewed by Anders Carlsson. It's not possible to make an automated test for this. * WebProcess/Plugins/PDF/BuiltInPDFView.mm: (WebKit::BuiltInPDFView::wantsWheelEvents): Return true instead of false and delete misleading comment. While the built-in PDF view would get added to the set of scrollable areas anyway, there are some code paths that check wantsWheelEvents explicitly, so it seems necessary to reutrn true. 2012-05-25 Brady Eidson https://bugs.webkit.org/show_bug.cgi?id=87418 WebBackForwardList should separate "has no current index" from the integer value of the current index This patch also renames "m_current" to "m_currentIndex" for clarity and symmetry with other variable names that reference "index", It also removes the m_closed and m_enabled flags which were never actually used. Reviewed by Darin Adler. * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::WebBackForwardList): (WebKit::WebBackForwardList::addItem): (WebKit::WebBackForwardList::goToItem): (WebKit::WebBackForwardList::currentItem): (WebKit::WebBackForwardList::backItem): (WebKit::WebBackForwardList::forwardItem): (WebKit::WebBackForwardList::itemAtIndex): (WebKit::WebBackForwardList::backListCount): (WebKit::WebBackForwardList::forwardListCount): (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit): (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit): (WebKit::WebBackForwardList::clear): * UIProcess/WebBackForwardList.h: (WebKit::WebBackForwardList::currentIndex): (WebBackForwardList): * UIProcess/cf/WebBackForwardListCF.cpp: (WebKit::WebBackForwardList::createCFDictionaryRepresentation): (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): 2012-05-25 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=87529 Background tabs hosted in window server flash before painting when they first become active Reviewed by Anders Carlsson. Initialize to LayerHostingModeInWindowServer if that is available to avoid having to re-make the context and re-set everything later on. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): 2012-05-25 Mario Sanchez Prada [GTK][WK2] Implement API for generic permission requests https://bugs.webkit.org/show_bug.cgi?id=84018 Reviewed by Martin Robinson. Added new 'permission-request' signal to WebKitWebView, to be fired when WebKit needs confirmation from the user on whether to allow or deny certain operations, such as sharing the user's location with web site through the Geolocation API. New WebKitPermissionRequest interface, providing allow() and deny() operations, to be called over the objects implementing it when emitted along with the new 'permission-request' signal. * UIProcess/API/gtk/WebKitPermissionRequest.cpp: Added. (webkit_permission_request_default_init): (webkit_permission_request_allow): (webkit_permission_request_deny): * UIProcess/API/gtk/WebKitPermissionRequest.h: Added. (_WebKitPermissionRequestIface): * GNUmakefile.am: Added new files. Added the new signal to WebKitWebView, providing a default handler that will just deny the request when the signal is not handled. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewDecidePermissionRequest): Default handler. (webkit_web_view_class_init): Declare the new signal and connect to the default handler. (webkitWebViewMakePermissionRequest): Helper function to create a make a new permission request and emit the new signal signal. * UIProcess/API/gtk/WebKitWebView.h: (_WebKitWebViewClass): * UIProcess/API/gtk/WebKitWebViewPrivate.h: Declare the creational function webkitWebViewMakePermissionRequest for internal use only. Updated documentation files. * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: 2012-05-25 Grzegorz Czajkowski [WK2] Fix client interface size for WKPageContextMenuClient. https://bugs.webkit.org/show_bug.cgi?id=87472 Reviewed by Carlos Garcia Campos. Add correct offset for version 1 and 2 of WKPageContextMenuClient. Revision 109750 introduces a new API and increases size of interfaceSizesByVersion but the table is not properly initialized for newly introduced version 2. * Shared/APIClientTraits.cpp: (WebKit): 2012-05-24 Andreas Kling Mac bots crashing under PluginInfo destructor. Reviewed by Darin Adler. We can't safely pass WTF::String to another thread without a deref() race, so pass the PluginInfo vector by pointer instead of by value. * UIProcess/WebContext.cpp: (WebKit::WebContext::sendDidGetPlugins): (WebKit::WebContext::handleGetPlugins): * UIProcess/WebContext.h: 2012-05-25 Zalan Bujtas [Qt][WK2] Fix failing qmltests::FitToView::test_basic() https://bugs.webkit.org/show_bug.cgi?id=87236 Reviewed by Kenneth Rohde Christiansen. Rename contentViewportChanged to informVisibleContentChange() to reflect its functionality better. Centralize m_hadUserInteraction flag setting and add assertions on it to ensure that designated functions are called only on user interaction. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewFlickablePrivate::onComponentComplete): (QQuickWebViewFlickablePrivate::updateViewportSize): (QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange): (QQuickWebViewFlickablePrivate::_q_resume): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/qquickwebview_p_p.h: (QQuickWebViewPrivate::_q_onInformVisibleContentChange): (QQuickWebViewFlickablePrivate): * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer): (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate): (WebKit::QtViewportInteractionEngine::pagePositionRequest): (WebKit::QtViewportInteractionEngine::touchBegin): (WebKit::QtViewportInteractionEngine::focusEditableArea): (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded): (WebKit::QtViewportInteractionEngine::panGestureStarted): (WebKit::QtViewportInteractionEngine::pinchGestureStarted): * UIProcess/qt/QtViewportInteractionEngine.h: (QtViewportInteractionEngine): 2012-05-24 Tim Horton Add feature defines for web-facing parts of CSS Regions and Exclusions https://bugs.webkit.org/show_bug.cgi?id=87442 Reviewed by Dan Bernstein. * Configurations/FeatureDefines.xcconfig: 2012-05-24 Geoffrey Garen WebKit should be lazy-finalization-safe (esp. the DOM) https://bugs.webkit.org/show_bug.cgi?id=87456 Reviewed by Filip Pizlo. * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: (WebKit::NPRuntimeObjectMap::getOrCreateJSObject): Use the new idioms. (WebKit::NPRuntimeObjectMap::invalidate): Check for null while iterating, since that's possible now. (WebKit::NPRuntimeObjectMap::finalize): Use the new idioms. 2012-05-24 Brady Eidson Fix the build after http://trac.webkit.org/changeset/118441 Also fix a glaring bug with the new code, will run it by original reviewer retroactively. * UIProcess/cf/WebBackForwardListCF.cpp: (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): Fix up the types of the ? operands to appease super-strict compilers. Don't allow negative indexes (besides the -1 "No index" index). 2012-05-24 Brady Eidson and https://bugs.webkit.org/show_bug.cgi?id=87417 (Unrepro) Crashes saving session state in WebBackForwardList Reviewed by Darin Adler. * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::addItem): Null check the proposed item and also m_page, to make sure the page hasn't been closed making this list inactive. Be more aggressive about clearing the current entries out if there is no current item index. (WebKit::WebBackForwardList::itemAtIndex): Early null return if there is no current index. (WebKit::WebBackForwardList::clear): Don't put the current item back in the array if there was no current item. * UIProcess/cf/WebBackForwardListCF.cpp: (WebKit::WebBackForwardList::createCFDictionaryRepresentation): Don't create a meaningless WebURL. Don't successfully return a dictionary if any of the entries were null. Be more aggressive about validating the current index we plan to return in the dictionary. (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): More aggressively validate the current index read from disk. Replace a meaningless sanity check with our typical ASSERT. 2012-05-24 Anders Carlsson Make sure that the layer hosting mode is up-to-date when reconnecting to a new web process https://bugs.webkit.org/show_bug.cgi?id=87421 Reviewed by Beth Dakin. Send over the layer hosting mode as part of the web page creation parameters and create the right layer hosting context based on the mode. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: (WebPageCreationParameters): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: (TiledCoreAnimationDrawingArea): * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): (WebKit::TiledCoreAnimationDrawingArea::setLayerHostingMode): (WebKit): (WebKit::TiledCoreAnimationDrawingArea::updateLayerHostingContext): 2012-05-24 John Mellor Font Boosting: Add compile flag and runtime setting https://bugs.webkit.org/show_bug.cgi?id=87394 Reviewed by Adam Barth. Add ENABLE_FONT_BOOSTING. * Configurations/FeatureDefines.xcconfig: 2012-05-24 Yael Aharon [Qt] Stop using the flag FIXED_POSITION_CREATES_STACKING_CONTEXT https://bugs.webkit.org/show_bug.cgi?id=87392 Reviewed by Antonio Gomes. Turn on the setting setFixedPositionCreatesStackingContext. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setResizesToContentsUsingLayoutSize): 2012-05-24 Alexey Proskuryakov [WK2] Let the client give local files universal access on a case by case basis https://bugs.webkit.org/show_bug.cgi?id=87174 Reviewed by Maciej Stachowiak. * WebProcess/InjectedBundle/API/c/WKBundlePage.h: * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: (WebKit::InjectedBundlePageLoaderClient::shouldForceUniversalAccessFromLocalURL): * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::shouldForceUniversalAccessFromLocalURL): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/qt/QtBuiltinBundlePage.cpp: (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage): Added glue code to call bundle client. 2012-05-24 Alexander Færøy Reorder arguments to compare() in the QML WebView tests https://bugs.webkit.org/show_bug.cgi?id=87374 Reviewed by Simon Hausmann. Based on patch by Kenneth Rohde Christiansen. The reordering is necessary to get correct information printed when the tests fails. Without this, the test suite will display the bogus value and not the expected value. This patch also removes the delayed windowShown since this is not needed anymore, due to us using the touch events instead of mouse events. * UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml: 2012-05-24 Allan Sandfeld Jensen [Qt] Tiles not painted after wheel or keyboard scroll. https://bugs.webkit.org/show_bug.cgi?id=87358 Reviewed by Kenneth Rohde Christiansen. After performing a scroll requested from the WebProcess we also need to inform the painting layer of the viewport change. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::pagePositionRequest): 2012-05-24 Andras Becsi [Qt][WK2] Fix bounce-back animation on pinch->pan https://bugs.webkit.org/show_bug.cgi?id=87266 Reviewed by Kenneth Rohde Christiansen. If ending an out-of-bounds pinch gesture with releasing one finger (transition to a pan gesture) the bounce back animation blinks in the end position immediately first, then animates the content back into bounds. QtViewportInteractionEngine::cancelScrollAnimation should return early if there is no active kinetic animation. * UIProcess/qt/QtViewportInteractionEngine.cpp: (WebKit::QtViewportInteractionEngine::cancelScrollAnimation): 2012-05-23 Ojan Vafai add back the ability to disable flexbox https://bugs.webkit.org/show_bug.cgi?id=87147 Reviewed by Tony Chang. * Configurations/FeatureDefines.xcconfig: 2012-05-23 Jer Noble REGRESSION (117623) - Entering/exiting fullscreen HTML5 videos, there is a quick animated fade https://bugs.webkit.org/show_bug.cgi?id=87294 Reviewed by Darin Adler. When setting the sublayers array on the layer hosting view, wrap the call in a CATransaction which disables animations. * UIProcess/API/mac/WKView.mm: (-[WKView _updateAcceleratedCompositingMode:WebKit::]): 2012-05-23 Dinu Jacob [Qt][Wk2] Assertion failure when selecting an option in select list with size attribute greater than one https://bugs.webkit.org/show_bug.cgi?id=86974 Reviewed by Simon Hausmann. Select list with size attribute greater than one will not initially have any item in selected state (if no option has 'selected' tag), resulting in m_selectedModelIndex in WebPopupMenuProxyQt to be invalid. Hence, need to check whether the old index is invalid before accessing the item at that index. * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml: Added new test that tests selection in a select list with size attribute value of 2. * UIProcess/API/qt/tests/qmltests/common/selectwithsize.html: Added. * UIProcess/qt/WebPopupMenuProxyQt.cpp: (WebKit::PopupMenuItemModel::select): Check whether old index is valid before accessing the item at that index. 2012-05-23 Jer Noble REGRESSION (r116188): After exiting full screen, Safari window is frozen, then inline video speeds through frames as it catches up with audio https://bugs.webkit.org/show_bug.cgi?id=87206 Reviewed by Darin Adler. When re-enabling the Safari window's autodisplay flag, also force the window to re-display. Otherwise, the window will not repaint itself until it is forced to by user interaction. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): 2012-05-23 Martin Robinson [GTK] [WebKit2] Add an API to enable and disable composited layer indicators https://bugs.webkit.org/show_bug.cgi?id=87053 Reviewed by Carlos Garcia Campos. Add a WebKitSetting that allows the client to enable and disable debug borders and repaint counters for accelerated content. * UIProcess/API/gtk/WebKitSettings.cpp: (webKitSettingsSetProperty): Added. (webKitSettingsGetProperty): Added. (webkit_settings_class_init): Add the new property. (webkit_settings_set_draw_compositing_indicators): Added. (webkit_settings_get_draw_compositing_indicators): Added. * UIProcess/API/gtk/WebKitSettings.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add the new API points to the documentation. * UIProcess/API/gtk/test/TestWebKitSettings.h: Add a new unit test. 2012-05-23 Michael Brüning [Qt][WK2] Small refactoring WebPage::confirmComposition. https://bugs.webkit.org/show_bug.cgi?id=87243 Reviewed by Kenneth Rohde Christiansen. Change nested if into an early return to reduce complexity. * WebProcess/WebPage/qt/WebPageQt.cpp: (WebKit::WebPage::confirmComposition): 2012-05-22 Alexander Færøy [Qt] Missing tests for the evaluateJavaScript API https://bugs.webkit.org/show_bug.cgi?id=86351 Reviewed by Kenneth Rohde Christiansen. * UIProcess/API/qt/tests/qmltests/WebView/tst_evaluateJavaScript.qml: * UIProcess/API/qt/tests/qmltests/common/evaluatejavascript.html: Added. 2012-05-23 Allan Sandfeld Jensen [Qt] FloatSize Qt Support https://bugs.webkit.org/show_bug.cgi?id=87237 Reviewed by Andreas Kling. Basic cleanup possible to new Qt support in FloatSize. * UIProcess/API/qt/qquickwebpage.cpp: (QQuickWebPagePrivate::updateSize): * UIProcess/API/qt/qwebkittest.cpp: (QWebKitTest::layoutSize): 2012-04-18 Tor Arne Vestbø [Qt] Make the web view's url property follow the active url https://bugs.webkit.org/show_bug.cgi?id=77554 The url property of the webview now reflects the 'active' url of the page, which maps to either the currently loading url, in the case of an ongoing load, or the result of a load, even when the load failed. In practice this means that setting the url though QML, or navigating to a new url in the page by e.g clicking, will both instantly change the url-property of the webview to the target url. This differs from earlier behavior, where we would update the url when the load committed. An optional argument is added to loadHtml(), to allow setting the unreachable url when providing replacement content for failed loads. Finally, the location bar in the minibrowser is updated to behave a bit more like normal browsers in terms of when the url will change and how active focus is handled. Reviewed by Simon Hausmann. * UIProcess/API/qt/qquickwebview.cpp: (QQuickWebViewPrivate::onComponentComplete): (QQuickWebView::reload): (QQuickWebView::url): (QQuickWebView::setUrl): (QQuickWebView::loadHtml): * UIProcess/API/qt/qquickwebview_p.h: * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro: * UIProcess/API/qt/tests/qmltests/WebView.pro: * UIProcess/API/qt/tests/qmltests/WebView/tst_loadUrl.qml: * UIProcess/API/qt/tests/qmltests/common/link.html: Added. * UIProcess/API/qt/tests/qmltests/common/redirect.html: Added. * UIProcess/qt/QtWebPageLoadClient.cpp: (QtWebPageLoadClient::QtWebPageLoadClient): (QtWebPageLoadClient::didStartProvisionalLoadForFrame): (QtWebPageLoadClient::didReceiveServerRedirectForProvisionalLoadForFrame): (QtWebPageLoadClient::didCommitLoadForFrame): (QtWebPageLoadClient::dispatchLoadFailed): (QtWebPageLoadClient::didFailProvisionalLoadWithErrorForFrame): (QtWebPageLoadClient::didFailLoadWithErrorForFrame): * UIProcess/qt/QtWebPageLoadClient.h: (QtWebPageLoadClient): 2012-05-23 Simon Hausmann [Qt] Race condition in LayerTreeHost/Proxy can cause blank rendering https://bugs.webkit.org/show_bug.cgi?id=87239 Reviewed by Kenneth Rohde Christiansen. On the UI process side the WebLayerTreeRenderer/LayerTreeHostProxy pair is created with m_active = false, which makes it ignore any incoming layer updates. It remains inactive until the ContentsSGNode is created and setActive(true) is called. On the web process side the LayerTreeHost is created with m_waitingForUIProcess = false. Those two variables must be in sync, otherwise a race condition can happen: The web process sends updates to the ui process before the ContentsSGNode is created. This can happen for example when re-using an existing WebProcess to create a QQuickWebView and load a page very fast from the disk cache. The update arrives on the ui process side, but it is discarded because setActive(true) hasn't been called yet. As a result any updates that would for example create and populate the tiles required for rendering are ignored. This patch ensures that the variables are initialized with the same values and that calling setActive(true) will trigger the rendering of the next frame. * UIProcess/WebLayerTreeRenderer.cpp: (WebKit::WebLayerTreeRenderer::setActive): * WebProcess/WebPage/qt/LayerTreeHostQt.cpp: (WebKit::LayerTreeHostQt::LayerTreeHostQt): 2012-05-23 Tor Arne Vestbø [Qt] Make QtWebError return the failing URL as a QString instead of QUrl We don't want to use QUrl inside QtWebKit (only in the API layer), due to how QUrl normalizes the url. Reviewed by Simon Hausmann. * UIProcess/qt/QtWebError.cpp: (WebKit::QtWebError::url): * UIProcess/qt/QtWebError.h: 2012-05-22 Carlos Garcia Campos [GTK] Add inspector API to WebKit2 GTK+ https://bugs.webkit.org/show_bug.cgi?id=87113 Reviewed by Martin Robinson. * GNUmakefile.list.am: Add new files to compilation. * UIProcess/API/C/gtk/WKInspectorClientGtk.cpp: Added. (WKInspectorSetInspectorClientGtk): * UIProcess/API/C/gtk/WKInspectorClientGtk.h: Added. * UIProcess/API/gtk/WebKitPrivate.h: * UIProcess/API/gtk/WebKitWebInspector.cpp: Added. (webkitWebInspectorFinalize): (webkit_web_inspector_init): (webkit_web_inspector_class_init): (openWindow): Emit WebKitWebInspector::open-window singal. (didClose): Emit WebKitWebInspector::closed signal. (bringToFront): Emit WebKitWebInspector::bring-to-front singal. (inspectedURLChanged): Set the inspected URI and emit GObject::notify signal if it changed. (attach): Emit WebKitWebInspector::attach signal. (detach): Emit WebKitWebInspector::detach signal. (didChangeAttachedHeight): Set the attached height and emit GObject::notify signal if it changed. (webkitWebInspectorCreate): Ceate a new WebKitWebInspector object for the given WKInspector. Also initialize and set the inspector client. (webkit_web_inspector_get_web_view): Return the web view used to render the inspector. (webkit_web_inspector_get_inspected_uri): Return the URI that is being inspected. (webkit_web_inspector_is_attached): Whether the inspector view is currently attached. (webkit_web_inspector_attach): Request to attach the inspector. (webkit_web_inspector_detach): Request to detach the inspector. (webkit_web_inspector_show): Request to show the inspector. (webkit_web_inspector_close): Request to close the inspector. (webkit_web_inspector_get_attached_height): Return the height that the inspector view should have when attached. * UIProcess/API/gtk/WebKitWebInspector.h: Added. * UIProcess/API/gtk/WebKitWebInspectorPrivate.h: Added. * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_get_inspector): Return the WebKitWebInspector associated to the web view. * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for WebKitWebInspector. * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ad new symbols. * UIProcess/API/gtk/docs/webkit2gtk.types: Add webkit_web_inspector_get_type. * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for the inspector API. * UIProcess/API/gtk/tests/TestInspector.cpp: Added. (testInspectorDefault): (testInspectorCustom): (testInspectorWindowDestroyed): (beforeAll): (afterAll): * UIProcess/API/gtk/tests/WebViewTest.cpp: (WebViewTest::showInWindowAndWaitUntilMapped): Add optional parameter to create a toplevel or popup window. (WebViewTest::resizeView): Helper function to set the widget allocation to a given size. * UIProcess/API/gtk/tests/WebViewTest.h: * UIProcess/API/gtk/webkit2.h: Include WebKitWebInspector.h * UIProcess/WebInspectorProxy.h: (WebKit::WebInspectorProxy::inspectorView): Return the view used to render the inspector. * UIProcess/gtk/WebInspectorClientGtk.cpp: Added. (WebKit::WebInspectorClientGtk::openWindow): (WebKit::WebInspectorClientGtk::didClose): (WebKit::WebInspectorClientGtk::bringToFront): (WebKit::WebInspectorClientGtk::inspectedURLChanged): (WebKit::WebInspectorClientGtk::attach): (WebKit::WebInspectorClientGtk::detach): (WebKit::WebInspectorClientGtk::didChangeAttachedHeight): * UIProcess/gtk/WebInspectorClientGtk.h: Added. * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::inspectorViewDestroyed): Close the inspector page when the inspector view is destroyed, instead of when the inspector window is deleted, because the inspector view can now be inside a window created by the user. (WebKit::WebInspectorProxy::initializeInspectorClientGtk): Initialze the inspector client. (WebKit::WebInspectorProxy::platformCreateInspectorPage): Add a weak pointer to the inspector view to make sure it's NULL when destroyed. (WebKit::WebInspectorProxy::createInspectorWindow): Call openWindow on the inspector client, and return early if the callback was handled. (WebKit::WebInspectorProxy::platformOpen): Connect to destroy signal of the inspector view to close the page when the view is destroyed. (WebKit::WebInspectorProxy::platformDidClose): Call didClose on the inspector client. (WebKit::WebInspectorProxy::platformBringToFront): Call bringToFront on the inspector client, and return early if the callback was handled. (WebKit::WebInspectorProxy::platformInspectedURLChanged): Call inspectedURLChanged on the inspector client. (WebKit::WebInspectorProxy::platformAttach): Call attach on the inspector client and return if the callback was handled. (WebKit::WebInspectorProxy::platformDetach): Call detach on the inspector client and return if the callback was handled. (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight): Call didChangeAttachedHeight on the inspector client. 2012-05-22 Anders Carlsson Functions dispatched by dispatchAfterEnsuringUpdatedScrollPosition can be called after drawing area has been destroyed https://bugs.webkit.org/show_bug.cgi?id=87173 Reviewed by Beth Dakin. Don't try to call forceRepaint if the drawing area has already been destroyed. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::forceRepaintAsync): 2012-05-22 Anders Carlsson Crash when a plug-in view outlives its containing WebPage https://bugs.webkit.org/show_bug.cgi?id=87163 Reviewed by Dan Bernstein. In rare cases, when a plug-in is kept alive for some reason it can outlive its WebPage. When that happens, the PluginView destructor will try to access the (deleted) web page and we'll crash. Fix this by making the WebPage destructor iterate over all the registered plug-ins and null out the m_webPage pointer. Don't try to access the WebPage object if it's null. Also, remove PLATFORM(MAC) ifdefs around the HashSet of known plug-in views as well as the member functions that access the set; we want this to be cross platform now. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::PluginView): (WebKit::PluginView::~PluginView): (WebKit::PluginView::webPageDestroyed): (WebKit): * WebProcess/Plugins/PluginView.h: (PluginView): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::~WebPage): (WebKit::WebPage::scalePage): (WebKit): * WebProcess/WebPage/WebPage.h: (WebPage): == Rolled over to ChangeLog-2012-05-22 ==