diff options
Diffstat (limited to 'Source/WebKit/efl')
26 files changed, 678 insertions, 399 deletions
diff --git a/Source/WebKit/efl/CMakeListsEfl.txt b/Source/WebKit/efl/CMakeListsEfl.txt deleted file mode 100644 index ec0c7d894..000000000 --- a/Source/WebKit/efl/CMakeListsEfl.txt +++ /dev/null @@ -1,260 +0,0 @@ -INCLUDE(WebKitEfl) - -LIST(APPEND WebKit_LINK_FLAGS - ${ECORE_X_LDFLAGS} - ${EDJE_LDFLAGS} - ${EFLDEPS_LDFLAGS} - ${EVAS_LDFLAGS} -) - -LIST(APPEND WebKit_INCLUDE_DIRECTORIES - "${WEBKIT_DIR}/efl/ewk" - "${WEBKIT_DIR}/efl/WebCoreSupport" - "${WEBCORE_DIR}/platform/efl" - "${WEBCORE_DIR}/platform/graphics/cairo" - ${Cairo_INCLUDE_DIRS} - ${ECORE_X_INCLUDE_DIRS} - ${EDJE_INCLUDE_DIRS} - ${EFLDEPS_INCLUDE_DIRS} - ${EVAS_INCLUDE_DIRS} - ${LIBXML2_INCLUDE_DIR} - ${LIBXSLT_INCLUDE_DIR} - ${SQLITE_INCLUDE_DIR} -) - -IF (ENABLE_SVG) - LIST(APPEND WebKit_INCLUDE_DIRECTORIES - "${WEBCORE_DIR}/svg" - "${WEBCORE_DIR}/svg/animation" - "${WEBCORE_DIR}/rendering/svg" - ) -ENDIF () - -IF (ENABLE_VIDEO) -LIST(APPEND WebKit_INCLUDE_DIRECTORIES - "${WEBCORE_DIR}/platform/graphics/gstreamer" - ${GStreamer-App_INCLUDE_DIRS} - ${GStreamer-Interfaces_INCLUDE_DIRS} - ${GStreamer-Pbutils_INCLUDE_DIRS} - ${GStreamer-Video_INCLUDE_DIRS} -) -ENDIF() - -IF (WTF_USE_FREETYPE) - LIST(APPEND WebKit_INCLUDE_DIRECTORIES - "${WEBCORE_DIR}/platform/graphics/freetype" - ) -ENDIF () - -IF (WTF_USE_PANGO) - LIST(APPEND WebKit_INCLUDE_DIRECTORIES - "${WEBCORE_DIR}/platform/graphics/pango" - ${Pango_INCLUDE_DIRS} - ) - LIST(APPEND WebKit_LIBRARIES - ${Pango_LIBRARIES} - ) -ENDIF () - -IF (ENABLE_NOTIFICATIONS) - LIST(APPEND WebKit_INCLUDE_DIRECTORIES - "${WEBCORE_DIR}/notifications" - ) -ENDIF () - -LIST(APPEND WebKit_SOURCES - efl/WebCoreSupport/AssertMatchingEnums.cpp - efl/WebCoreSupport/ChromeClientEfl.cpp - efl/WebCoreSupport/DeviceOrientationClientEfl.cpp - efl/WebCoreSupport/DeviceMotionClientEfl.cpp - efl/WebCoreSupport/DragClientEfl.cpp - efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp - efl/WebCoreSupport/EditorClientEfl.cpp - efl/WebCoreSupport/FrameLoaderClientEfl.cpp - efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp - efl/WebCoreSupport/IconDatabaseClientEfl.cpp - efl/WebCoreSupport/InspectorClientEfl.cpp - efl/WebCoreSupport/NotificationPresenterClientEfl.cpp - - efl/ewk/ewk_contextmenu.cpp - efl/ewk/ewk_cookies.cpp - efl/ewk/ewk_frame.cpp - efl/ewk/ewk_history.cpp - efl/ewk/ewk_main.cpp - efl/ewk/ewk_network.cpp - efl/ewk/ewk_security_policy.cpp - efl/ewk/ewk_settings.cpp - efl/ewk/ewk_tiled_backing_store.cpp - efl/ewk/ewk_tiled_matrix.cpp - efl/ewk/ewk_tiled_model.cpp - efl/ewk/ewk_util.cpp - efl/ewk/ewk_view.cpp - efl/ewk/ewk_view_single.cpp - efl/ewk/ewk_view_tiled.cpp - efl/ewk/ewk_window_features.cpp - efl/ewk/ewk_js.cpp -) - -LIST(APPEND WebKit_LIBRARIES - ${Cairo_LIBRARIES} - ${ECORE_X_LIBRARIES} - ${EFLDEPS_LIBRARIES} - ${FREETYPE_LIBRARIES} - ${LIBXML2_LIBRARIES} - ${SQLITE_LIBRARIES} - ${FONTCONFIG_LIBRARIES} - ${PNG_LIBRARY} - ${JPEG_LIBRARY} - ${CMAKE_DL_LIBS} -) - -IF (ENABLE_GLIB_SUPPORT) - LIST(APPEND WebKit_INCLUDE_DIRECTORIES - ${Gdk_INCLUDE_DIRS} - ${Glib_INCLUDE_DIRS} - ${JAVASCRIPTCORE_DIR}/wtf/gobject - ) - LIST(APPEND WebKit_LIBRARIES - ${Glib_LIBRARIES} - ${Gdk_LIBRARIES} - ) -ENDIF () - -IF (WTF_USE_SOUP) - LIST(APPEND WebKit_INCLUDE_DIRECTORIES ${LIBSOUP24_INCLUDE_DIRS}) - LIST(APPEND WebKit_LIBRARIES ${LIBSOUP24_LIBRARIES}) - LIST(APPEND WebKit_SOURCES - efl/ewk/ewk_auth.cpp - efl/ewk/ewk_auth_soup.cpp - ) -ENDIF () - -IF (WTF_USE_CURL) - LIST(APPEND WebKit_INCLUDE_DIRECTORIES ${CURL_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS}) - LIST(APPEND WebKit_LIBRARIES ${CURL_LIBRARIES} ${ZLIB_LIBRARIES}) -ENDIF () - -SET(WebKit_THEME_DEFINITION "") -IF (ENABLE_PROGRESS_TAG) - LIST(APPEND WebKit_THEME_DEFINITION "-DENABLE_PROGRESS_TAG") -ENDIF () - -FILE(MAKE_DIRECTORY ${THEME_BINARY_DIR}) -SET(WebKit_THEME ${THEME_BINARY_DIR}/default.edj) -ADD_CUSTOM_COMMAND( - OUTPUT ${WebKit_THEME} - COMMAND ${EDJE_CC_EXECUTABLE} -v -id ${WEBKIT_DIR}/efl/DefaultTheme ${WebKit_THEME_DEFINITION} ${WEBKIT_DIR}/efl/DefaultTheme/default.edc ${WebKit_THEME} - DEPENDS - ${WEBKIT_DIR}/efl/DefaultTheme/default.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_knob_v.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_knob_press_v.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_v.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_knob_press_h.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_knob_h.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_fill_v.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_fill_h.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_h.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_focus_button.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_press.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/icon.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_normal.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_hover.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_normal_button.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_focus.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_hover_button.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_press_button.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/decoration/search_decoration.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/decoration/decoration_normal_button.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/field/field_hovered.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/field/search_field.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/field/field_normal.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/field/field_focused.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/cancel/cancel_normal_button.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/cancel/cancel_normal_button2.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/search/cancel/search_cancel.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/check/img_check_off_focus.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/check/check.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/check/img_check_on_focus.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/check/img_check_on_hover.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/check/img_check_off_hover.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/check/img_check_off.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/check/img_check_on.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/radio/img_radio_on.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/radio/img_radio_off_focus.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/radio/img_radio_off_hover.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/radio/img_radio_on_focus.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/radio/radio.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/radio/img_radio_off.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/radio/img_radio_on_hover.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/button/img_button_normal.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/button/img_button_press.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/button/img_button_focus.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/button/img_button_hover.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/button/button.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/entry/entry.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/entry/img_normal.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/entry/img_focused.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/entry/img_hovered.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/scrollbar/scrollbar.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/file/file_normal.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/file/file_press.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/file/file_hover.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/file/file_focus.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/file/file.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/progressbar/progressbar.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/progressbar/shelf_inset.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/progressbar/bt_base.png - VERBATIM -) - -LIST(APPEND WebKit_SOURCES - ${WebKit_THEME} -) - -IF (SHARED_CORE) - SET(LIBS_PRIVATE "-l${WTF_LIBRARY_NAME} -l${JavaScriptCore_LIBRARY_NAME} -l${WebCore_LIBRARY_NAME}") -ELSE () - SET(LIBS_PRIVATE "") -ENDIF () - -CONFIGURE_FILE( - efl/ewebkit.pc.in - ${CMAKE_BINARY_DIR}/WebKit/efl/ewebkit.pc - @ONLY) -INSTALL(FILES ${CMAKE_BINARY_DIR}/WebKit/efl/ewebkit.pc - DESTINATION lib/pkgconfig) - -UNSET(LIBS_PRIVATE) - -SET(EWebKit_HEADERS - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/EWebKit.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_auth.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_contextmenu.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_cookies.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_frame.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_history.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_js.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_logging.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_main.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_network.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_security_policy.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_settings.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_view.h - ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_window_features.h -) - -IF (WTF_USE_SOUP) - LIST(APPEND EWebKit_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_auth_soup.h) -ENDIF () - -INSTALL(FILES ${EWebKit_HEADERS} - DESTINATION include/${WebKit_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR}) - -INSTALL(FILES ${WebKit_THEME} - DESTINATION ${DATA_INSTALL_DIR}/themes) diff --git a/Source/WebKit/efl/ChangeLog b/Source/WebKit/efl/ChangeLog index 6a52fa252..db22d44eb 100644 --- a/Source/WebKit/efl/ChangeLog +++ b/Source/WebKit/efl/ChangeLog @@ -1,3 +1,245 @@ +2012-02-24 Shinya Kawanaka <shinyak@chromium.org> + + SpellCheckRequest needs to know the context where the spellcheck happened. + https://bugs.webkit.org/show_bug.cgi?id=79320 + + Reviewed by Hajime Morita. + + * WebCoreSupport/EditorClientEfl.h: + (WebCore::EditorClientEfl::requestCheckingOfString): + +2012-02-21 Ryosuke Niwa <rniwa@webkit.org> + + Remove the remaining uses of CSSStyleDeclaration in Editor + https://bugs.webkit.org/show_bug.cgi?id=78939 + + Reviewed by Enrica Casucci. + + * WebCoreSupport/EditorClientEfl.cpp: + (WebCore::EditorClientEfl::shouldApplyStyle): + * WebCoreSupport/EditorClientEfl.h: + (EditorClientEfl): + +2012-02-22 Ryosuke Niwa <rniwa@webkit.org> + + Remove the remaining uses of CSSStyleDeclaration in Editor + https://bugs.webkit.org/show_bug.cgi?id=78939 + + Reviewed by Enrica Casucci. + + * WebCoreSupport/EditorClientEfl.cpp: + (WebCore::EditorClientEfl::shouldApplyStyle): + * WebCoreSupport/EditorClientEfl.h: + (EditorClientEfl): + +2012-02-20 Kihong Kwon <kihong.kwon@samsung.com> + + Add a new API for the Vibration API(W3C). + https://bugs.webkit.org/show_bug.cgi?id=72010 + + Reviewed by Hajime Morita. + + Implementation for the Vibration API feature to the EFL-port layer. + http://dev.w3.org/2009/dap/vibration/ + There are two methods for vibration API. + - vibrate : Vibrate device for receiving as a parameter. + - cancelVibrate : Cancel current vibration. + + * CMakeListsEfl.txt: + * WebCoreSupport/VibrationClientEfl.cpp: Added. + (WebCore): + (WebCore::VibrationClientEfl::VibrationClientEfl): + (WebCore::VibrationClientEfl::vibrate): + (WebCore::VibrationClientEfl::cancelVibration): + (WebCore::VibrationClientEfl::vibrationDestroyed): + * WebCoreSupport/VibrationClientEfl.h: Added. + (WebCore): + (VibrationClientEfl): + (WebCore::VibrationClientEfl::~VibrationClientEfl): + * ewk/ewk_view.cpp: + (_Ewk_View_Private_Data): + (_ewk_view_priv_new): + +2012-02-17 Raphael Kubo da Costa <kubo@profusion.mobi> + + [EFL] Unreviewed, adapt to the changes introduced in r107973. + + SVN r107973 moved some libsoup feature initialization code to + WebCore, but only changed the GTK+ bits in WebKit. + + * ewk/ewk_main.cpp: + (_ewk_init_body): Do not initialize the content sniffer and the + decoder here, the initialization is now done in WebCore. + +2012-02-17 Raphael Kubo da Costa <kubo@profusion.mobi> + + Unreviewed, fix the build with ENABLE(DEVICE_ORIENTATION) after + r107518. The EFL EWS bot doesn't enable that flag, so the breakage + was not spotted earlier. + + * ewk/ewk_view.cpp: + (_Ewk_View_Private_Data): + (_ewk_view_priv_new): + +2012-01-31 Raphael Kubo da Costa <kubo@profusion.mobi> + + [soup] Add support for multiple SoupSessions. + https://bugs.webkit.org/show_bug.cgi?id=77341 + + Add the necessary infrastructure to support multiple SoupSessions. Each + WebView now has a "session" property, which defaults to + ResourceHandle::defaultSession() and can be changed to another + SoupSession by the user. + + Some API in ewk_network and ewk_view which required SoupSession to be a + valid type in the headers has now been moved inside #if USE(SOUP) + ifdefs so we can actually the required Soup header and avoid build + problems with duplicate typedefs. + + * CMakeListsEfl.txt: + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::FrameLoaderClientEfl::createNetworkingContext): + * WebCoreSupport/FrameNetworkingContextEfl.cpp: Copied from Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.h. + (WebCore): + (WebCore::FrameNetworkingContextEfl::create): + (WebCore::FrameNetworkingContextEfl::FrameNetworkingContextEfl): + (WebCore::FrameNetworkingContextEfl::soupSession): + * WebCoreSupport/FrameNetworkingContextEfl.h: + (FrameNetworkingContextEfl): + * ewk/ewk_cookies.h: Mention this API is only valid with the + default SoupSession. + * ewk/ewk_network.cpp: + (ewk_network_default_soup_session_get): Define only if USE(SOUP) is set. + * ewk/ewk_network.h: Ditto, and mention this API is only valid with the + default SoupSession. + * ewk/ewk_view.cpp: + (_Ewk_View_Private_Data): + (_ewk_view_priv_new): + (ewk_view_soup_session_get): + (ewk_view_soup_session_set): + * ewk/ewk_view.h: + (): + +2012-02-15 Sadrul Habib Chowdhury <sadrul@chromium.org> + + Notify ChromeClient when touch-event handlers are installed/removed. + https://bugs.webkit.org/show_bug.cgi?id=77440 + + Reviewed by Darin Fisher and Ryosuke Niwa. + + * WebCoreSupport/ChromeClientEfl.h: + (WebCore::ChromeClientEfl::numTouchEventHandlersChanged): + +2012-02-15 Gustavo Lima Chaves <glima@profusion.mobi> + + [EFL] Add missing libsoup to (pkgconfig) dependency requirements + https://bugs.webkit.org/show_bug.cgi?id=78702 + + Unreviewed build fix. + + * ewebkit.pc.in: Now that bug 77874 had its patch landed, we + always require libsoup as a dependency for the EFL port. The + 'Require' session of this file has to contemplate that, otherwise + code linking with ewebkit will fail to lookup to libsoup's header + files. + +2012-02-13 Raphael Kubo da Costa <kubo@profusion.mobi> + + [CMake] Merge WebKitEfl.cmake into FindEFL.cmake. + https://bugs.webkit.org/show_bug.cgi?id=78566 + + Reviewed by Daniel Bates. + + * CMakeListsEfl.txt: Do not include WebKitEfl.cmake. + +2012-02-11 Nikolas Zimmermann <nzimmermann@rim.com> + + Convert svg/animations to use SMIL methods for driving the timeline + https://bugs.webkit.org/show_bug.cgi?id=78422 + + Reviewed by Dirk Schulze. + + Remove SVG animation sampling functionality provided for DRT, which no longer uses it. + Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + * WebCoreSupport/DumpRenderTreeSupportEfl.h: + +2012-02-06 Raphael Kubo da Costa <kubo@profusion.mobi> + + [EFL] Drop support for the Curl network backend. + https://bugs.webkit.org/show_bug.cgi?id=77874 + + Reviewed by Eric Seidel. + + Nobody seems to be maintaining the Curl backend in WebCore, the + EFL port developers all seem to be using the Soup backend and the + port itself has many features which are only implemented for the + latter. + + * CMakeListsEfl.txt: Unconditionally build soup-dependent files + and always add the glib/soup include directories and libraries. + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::FrameLoaderClientEfl::dispatchDidReceiveResponse): + Remove USE(SOUP) checks. + * ewk/ewk_auth.cpp: + (ewk_auth_show_dialog_callback_set): Ditto. + (ewk_auth_credentials_set): Ditto. + * ewk/ewk_cookies.cpp: + (ewk_cookies_file_set): Ditto. + (ewk_cookies_clear): Ditto. + (ewk_cookies_get_all): Ditto. + (ewk_cookies_cookie_del): Ditto. + (ewk_cookies_cookie_free): Ditto. + (ewk_cookies_policy_set): Ditto. + (ewk_cookies_policy_get): Ditto. + * ewk/ewk_frame.cpp: + (ewk_frame_certificate_status_get): Ditto. + * ewk/ewk_main.cpp: + (_ewk_init_body): Ditto. + * ewk/ewk_network.cpp: + (ewk_network_proxy_uri_set): Ditto. + (ewk_network_proxy_uri_get): Ditto. + (ewk_network_tls_certificate_check_get): Ditto. + (ewk_network_tls_certificate_check_set): Ditto. + (ewk_network_tls_ca_certificates_path_get): Ditto. + (ewk_network_tls_ca_certificates_path_set): Ditto. + (ewk_network_default_soup_session_get): Ditto. + * ewk/ewk_network.h: Update apidox for + ewk_network_default_soup_session_get() now that libsoup is the + only available backend. + +2012-02-09 Gustavo Lima Chaves <glima@profusion.mobi> + + [EFL] Introducing functions to set local storage db path and clear + those dbs. + https://bugs.webkit.org/show_bug.cgi?id=77107 + + This patch exposes the web local storage tracker database path + setting cabability, introduced on bug 77006, to the EFL port of + WebKit. Particularly, we have our own storage tracker client + object, to initialize the storage tracker backend on ewk_init(). + + Reviewed by Kenneth Rohde Christiansen. + + * CMakeListsEfl.txt: + * WebCoreSupport/StorageTrackerClientEfl.cpp: Added. + (WebCore): + (WebCore::StorageTrackerClientEfl::dispatchDidModifyOrigin): + (WebCore::StorageTrackerClientEfl::didFinishLoadingOrigins): + * WebCoreSupport/StorageTrackerClientEfl.h: Added. + (WebCore): + (StorageTrackerClientEfl): + * ewk/ewk_main.cpp: + (trackerClient): + (_ewk_init_body): + * ewk/ewk_settings.cpp: + (ewk_settings_local_storage_path_set): + (ewk_settings_local_storage_path_get): + (ewk_settings_local_storage_database_clear): + (ewk_settings_local_storage_database_origin_clear): + * ewk/ewk_settings.h: + 2012-02-07 Krzysztof Czech <k.czech@samsung.com> [EFL] Add missing initialization of editable variable. diff --git a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h index 4b47c731c..82512251f 100644 --- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h @@ -173,6 +173,7 @@ public: virtual bool shouldRubberBandInDirection(WebCore::ScrollDirection) const { return true; } virtual void numWheelEventHandlersChanged(unsigned) { } + virtual void numTouchEventHandlersChanged(unsigned) { } Evas_Object* m_view; KURL m_hoveredLinkURL; diff --git a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp index 1eb58d5b5..2a4a9fcc9 100644 --- a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp @@ -40,11 +40,6 @@ #include <workers/WorkerThread.h> #include <wtf/text/AtomicString.h> -#if ENABLE(SVG) -#include <SVGDocumentExtensions.h> -#include <SVGSMILElement.h> -#endif - unsigned DumpRenderTreeSupportEfl::activeAnimationsCount(const Evas_Object* ewkFrame) { WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); @@ -174,30 +169,6 @@ bool DumpRenderTreeSupportEfl::pauseAnimation(Evas_Object* ewkFrame, const char* return frame->animation()->pauseAnimationAtTime(element->renderer(), name, time); } -bool DumpRenderTreeSupportEfl::pauseSVGAnimation(Evas_Object* ewkFrame, const char* animationId, const char* elementId, double time) -{ -#if ENABLE(SVG) - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return false; - - WebCore::Document* document = frame->document(); - - if (!document || !document->svgExtensions()) - return false; - - WebCore::Element* element = document->getElementById(animationId); - - if (!element || !WebCore::SVGSMILElement::isSMILElement(element)) - return false; - - return document->accessSVGExtensions()->sampleAnimationAtTime(elementId, static_cast<WebCore::SVGSMILElement*>(element), time); -#else - return false; -#endif -} - bool DumpRenderTreeSupportEfl::pauseTransition(Evas_Object* ewkFrame, const char* name, const char* elementId, double time) { WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); diff --git a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h index 0ba342a6d..42af811d3 100644 --- a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h @@ -52,7 +52,6 @@ public: static int numberOfPages(const Evas_Object* ewkFrame, float pageWidth, float pageHeight); static int numberOfPagesForElementId(const Evas_Object* ewkFrame, const char* elementId, float pageWidth, float pageHeight); static bool pauseAnimation(Evas_Object* ewkFrame, const char* name, const char* elementId, double time); - static bool pauseSVGAnimation(Evas_Object* ewkFrame, const char* animationId, const char* elementId, double time); static bool pauseTransition(Evas_Object* ewkFrame, const char* name, const char* elementId, double time); static unsigned pendingUnloadEventCount(const Evas_Object* ewkFrame); static String renderTreeDump(Evas_Object* ewkFrame); diff --git a/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp index 78563ec7d..8224155a8 100644 --- a/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp @@ -103,7 +103,7 @@ bool EditorClientEfl::shouldChangeSelectedRange(Range*, Range*, EAffinity, bool) return true; } -bool EditorClientEfl::shouldApplyStyle(CSSStyleDeclaration*, Range*) +bool EditorClientEfl::shouldApplyStyle(StylePropertySet*, Range*) { notImplemented(); return true; diff --git a/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h b/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h index 7ff181316..2b52e9dda 100644 --- a/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h @@ -73,7 +73,7 @@ public: virtual bool shouldInsertText(const String&, Range*, EditorInsertAction); virtual bool shouldChangeSelectedRange(Range* fromRange, Range* toRange, EAffinity, bool stillSelecting); - virtual bool shouldApplyStyle(CSSStyleDeclaration*, Range*); + virtual bool shouldApplyStyle(StylePropertySet*, Range*); virtual bool shouldMoveRangeAfterDelete(Range*, Range*); @@ -120,7 +120,7 @@ public: virtual void getGuessesForWord(const String& word, const String& context, WTF::Vector<String>& guesses); virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); - virtual void requestCheckingOfString(WebCore::SpellChecker*, int, WebCore::TextCheckingTypeMask, const WTF::String&) { } + virtual void requestCheckingOfString(WebCore::SpellChecker*, const WebCore::TextCheckingRequest&) { } virtual TextCheckerClient* textChecker() { return this; } private: diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp index 1d4d64a9f..0096b8874 100644 --- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp @@ -241,13 +241,9 @@ void FrameLoaderClientEfl::frameLoaderDestroyed() void FrameLoaderClientEfl::dispatchDidReceiveResponse(DocumentLoader* loader, unsigned long, const ResourceResponse& response) { -#if USE(SOUP) // Update our knowledge of request soup flags - some are only set // after the request is done. loader->request().setSoupMessageFlags(response.soupMessageFlags()); -#else - UNUSED_PARAM(loader); -#endif m_response = response; } @@ -951,7 +947,7 @@ void FrameLoaderClientEfl::dispatchDidBecomeFrameset(bool) PassRefPtr<FrameNetworkingContext> FrameLoaderClientEfl::createNetworkingContext() { - return FrameNetworkingContextEfl::create(EWKPrivate::coreFrame(m_frame)); + return FrameNetworkingContextEfl::create(EWKPrivate::coreFrame(m_frame), m_frame); } } diff --git a/Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.cpp b/Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.cpp new file mode 100644 index 000000000..8c20b213a --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.cpp @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) + * Copyright (C) 2010 Samsung Electronics + * Copyright (C) 2012 ProFUSION embedded systems + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "FrameNetworkingContextEfl.h" + +#include "ResourceHandle.h" +#include "ewk_frame.h" +#include "ewk_view.h" + +#include <Evas.h> + +namespace WebCore { + +PassRefPtr<FrameNetworkingContextEfl> FrameNetworkingContextEfl::create(Frame* frame, Evas_Object* ewkFrame) +{ + return adoptRef(new FrameNetworkingContextEfl(frame, ewkFrame)); +} + +FrameNetworkingContextEfl::FrameNetworkingContextEfl(Frame* frame, Evas_Object* ewkFrame) + : FrameNetworkingContext(frame) + , m_ewkFrame(ewkFrame) +{ +} + +SoupSession* FrameNetworkingContextEfl::soupSession() const +{ + return ewk_view_soup_session_get(ewk_frame_view_get(m_ewkFrame)); +} + +} diff --git a/Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.h b/Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.h index 4e67512d0..93ffd48bb 100644 --- a/Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.h @@ -31,22 +31,21 @@ #include "FrameNetworkingContext.h" +typedef struct _Evas_Object Evas_Object; + namespace WebCore { class FrameNetworkingContextEfl : public WebCore::FrameNetworkingContext { public: - static PassRefPtr<FrameNetworkingContextEfl> create(WebCore::Frame* frame) - { - return adoptRef(new FrameNetworkingContextEfl(frame)); - } + static PassRefPtr<FrameNetworkingContextEfl> create(Frame*, Evas_Object*); WebCore::Frame* coreFrame() const { return frame(); } + virtual SoupSession* soupSession() const; private: - FrameNetworkingContextEfl(WebCore::Frame* frame) - : WebCore::FrameNetworkingContext(frame) - { - } + FrameNetworkingContextEfl(Frame*, Evas_Object*); + + Evas_Object* m_ewkFrame; }; } diff --git a/Source/WebKit/efl/WebCoreSupport/StorageTrackerClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/StorageTrackerClientEfl.cpp new file mode 100644 index 000000000..9d9d26918 --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/StorageTrackerClientEfl.cpp @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2012 ProFUSION Embedded Systems + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" +#include "StorageTrackerClientEfl.h" + +#include "NotImplemented.h" + +namespace WebCore { + +void StorageTrackerClientEfl::dispatchDidModifyOrigin(const String&) +{ + notImplemented(); +} + +void StorageTrackerClientEfl::didFinishLoadingOrigins() +{ + notImplemented(); +} + +} diff --git a/Source/WebKit/efl/WebCoreSupport/StorageTrackerClientEfl.h b/Source/WebKit/efl/WebCoreSupport/StorageTrackerClientEfl.h new file mode 100644 index 000000000..62eae20ee --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/StorageTrackerClientEfl.h @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2012 ProFUSION Embedded Systems + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef StorageTrackerClientEfl_h +#define StorageTrackerClientEfl_h + +#include "StorageTrackerClient.h" + +namespace WebCore { + +class StorageTrackerClientEfl : public StorageTrackerClient { +public: + virtual void dispatchDidModifyOrigin(const String&); + virtual void didFinishLoadingOrigins(); +}; + +} + +#endif // StorageTrackerClientEfl_h diff --git a/Source/WebKit/efl/WebCoreSupport/VibrationClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/VibrationClientEfl.cpp new file mode 100644 index 000000000..2365b72a3 --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/VibrationClientEfl.cpp @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2012 Samsung Electronics + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" +#include "VibrationClientEfl.h" + +#if ENABLE(VIBRATION) + +namespace WebCore { + +VibrationClientEfl::VibrationClientEfl(Evas_Object* view) + : m_view(view) +{ +} + +void VibrationClientEfl::vibrate(const unsigned long& time) +{ + evas_object_smart_callback_call(m_view, "vibration,vibrate", (void*)&time); +} + +void VibrationClientEfl::cancelVibration() +{ + evas_object_smart_callback_call(m_view, "vibration,cancel", 0); +} + +void VibrationClientEfl::vibrationDestroyed() +{ + delete this; +} + +} // namespace WebCore + +#endif // ENABLE(VIBRATION) + diff --git a/Source/WebKit/efl/WebCoreSupport/VibrationClientEfl.h b/Source/WebKit/efl/WebCoreSupport/VibrationClientEfl.h new file mode 100644 index 000000000..e7b0d925a --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/VibrationClientEfl.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2012 Samsung Electronics + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef VibrationClientEfl_h +#define VibrationClientEfl_h + +#include "VibrationClient.h" +#include <Evas.h> + +namespace WebCore { + +class VibrationClientEfl : public VibrationClient { +public: + VibrationClientEfl(Evas_Object* view); + virtual ~VibrationClientEfl() { } + + virtual void vibrate(const unsigned long& time); + virtual void cancelVibration(); + + virtual void vibrationDestroyed(); + +private: + Evas_Object* m_view; +}; + +} // namespace WebCore + +#endif // VibrationClientEfl_h + diff --git a/Source/WebKit/efl/ewebkit.pc.in b/Source/WebKit/efl/ewebkit.pc.in index 3a1c8f54f..dd6178347 100644 --- a/Source/WebKit/efl/ewebkit.pc.in +++ b/Source/WebKit/efl/ewebkit.pc.in @@ -7,7 +7,7 @@ datadir=${prefix}/share/@WebKit_LIBRARY_NAME@-@PROJECT_VERSION_MAJOR@ Name: WebKit-EFL Description: Web content engine for EFL applications Version: @PROJECT_VERSION@ -Requires: cairo evas ecore +Requires: cairo evas ecore libsoup-2.4 Libs: -L${libdir} -lewebkit @EXTRA_EWEBKIT_LINK@ Libs.private: @LIBS_PRIVATE@ Cflags: -I${includedir}/@WebKit_LIBRARY_NAME@-@PROJECT_VERSION_MAJOR@ diff --git a/Source/WebKit/efl/ewk/ewk_auth.cpp b/Source/WebKit/efl/ewk/ewk_auth.cpp index a4cb9e6b7..af2172ae1 100644 --- a/Source/WebKit/efl/ewk/ewk_auth.cpp +++ b/Source/WebKit/efl/ewk/ewk_auth.cpp @@ -20,20 +20,14 @@ #include "config.h" #include "ewk_auth.h" -#ifdef WTF_USE_SOUP #include "ewk_auth_soup.h" -#endif void ewk_auth_show_dialog_callback_set(Ewk_Auth_Show_Dialog_Callback callback) { -#if USE(SOUP) ewk_auth_soup_show_dialog_callback_set(callback); -#endif } void ewk_auth_credentials_set(char* username, char* password, void* data) { -#if USE(SOUP) ewk_auth_soup_credentials_set(username, password, data); -#endif } diff --git a/Source/WebKit/efl/ewk/ewk_cookies.cpp b/Source/WebKit/efl/ewk/ewk_cookies.cpp index 35e64ac40..7980c0120 100644 --- a/Source/WebKit/efl/ewk/ewk_cookies.cpp +++ b/Source/WebKit/efl/ewk/ewk_cookies.cpp @@ -21,20 +21,16 @@ #include "config.h" #include "ewk_cookies.h" +#include "CookieJarSoup.h" #include "ResourceHandle.h" #include <Eina.h> #include <eina_safety_checks.h> -#include <wtf/text/CString.h> - -#if USE(SOUP) -#include "CookieJarSoup.h" #include <glib.h> #include <libsoup/soup.h> -#endif +#include <wtf/text/CString.h> Eina_Bool ewk_cookies_file_set(const char* filename) { -#if USE(SOUP) SoupCookieJar* cookieJar = 0; if (filename) cookieJar = soup_cookie_jar_text_new(filename, FALSE); @@ -55,14 +51,10 @@ Eina_Bool ewk_cookies_file_set(const char* filename) soup_session_add_feature(session, SOUP_SESSION_FEATURE(cookieJar)); return true; -#else - return false; -#endif } void ewk_cookies_clear(void) { -#if USE(SOUP) GSList* list; GSList* p; SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); @@ -72,13 +64,11 @@ void ewk_cookies_clear(void) soup_cookie_jar_delete_cookie(cookieJar, (SoupCookie*)p->data); soup_cookies_free(list); -#endif } Eina_List* ewk_cookies_get_all(void) { Eina_List* result = 0; -#if USE(SOUP) GSList* list; GSList* p; SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); @@ -98,13 +88,12 @@ Eina_List* ewk_cookies_get_all(void) } soup_cookies_free(list); -#endif + return result; } void ewk_cookies_cookie_del(Ewk_Cookie* cookie) { -#if USE(SOUP) EINA_SAFETY_ON_NULL_RETURN(cookie); GSList* list; GSList* p; @@ -123,24 +112,20 @@ void ewk_cookies_cookie_del(Ewk_Cookie* cookie) soup_cookie_free(cookie1); soup_cookies_free(list); -#endif } void ewk_cookies_cookie_free(Ewk_Cookie* cookie) { -#if USE(SOUP) EINA_SAFETY_ON_NULL_RETURN(cookie); free(cookie->name); free(cookie->value); free(cookie->domain); free(cookie->path); free(cookie); -#endif } void ewk_cookies_policy_set(Ewk_Cookie_Policy cookiePolicy) { -#if USE(SOUP) SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); SoupCookieJarAcceptPolicy policy; @@ -158,13 +143,11 @@ void ewk_cookies_policy_set(Ewk_Cookie_Policy cookiePolicy) } soup_cookie_jar_set_accept_policy(cookieJar, policy); -#endif } Ewk_Cookie_Policy ewk_cookies_policy_get(void) { Ewk_Cookie_Policy ewkPolicy = EWK_COOKIE_JAR_ACCEPT_ALWAYS; -#if USE(SOUP) SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); SoupCookieJarAcceptPolicy policy; @@ -180,7 +163,6 @@ Ewk_Cookie_Policy ewk_cookies_policy_get(void) ewkPolicy = EWK_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY; break; } -#endif return ewkPolicy; } diff --git a/Source/WebKit/efl/ewk/ewk_cookies.h b/Source/WebKit/efl/ewk/ewk_cookies.h index 40e69d56c..29ac12182 100644 --- a/Source/WebKit/efl/ewk/ewk_cookies.h +++ b/Source/WebKit/efl/ewk/ewk_cookies.h @@ -21,6 +21,12 @@ /** * @file ewk_cookies.h * @brief The Ewk cookies API. + * + * @note If the libsoup network backend is being used the functions here will + * only work with the @b default SoupSession, which can be retrieved with + * ewk_network_defaul_soup_session_get(). If a different SoupSession is used + * and associated with a view with ewk_view_soup_session_set(), all cookie + * management will have to be done manually. */ #ifndef ewk_cookies_h diff --git a/Source/WebKit/efl/ewk/ewk_frame.cpp b/Source/WebKit/efl/ewk/ewk_frame.cpp index 8dc140150..29fe4f059 100644 --- a/Source/WebKit/efl/ewk/ewk_frame.cpp +++ b/Source/WebKit/efl/ewk/ewk_frame.cpp @@ -1606,7 +1606,6 @@ Eina_Bool ewk_frame_mixed_content_run_get(const Evas_Object* ewkFrame) Ewk_Certificate_Status ewk_frame_certificate_status_get(Evas_Object* ewkFrame) { -#if USE(SOUP) EWK_FRAME_SD_GET_OR_RETURN(ewkFrame, smartData, EWK_CERTIFICATE_STATUS_NO_CERTIFICATE); EINA_SAFETY_ON_NULL_RETURN_VAL(smartData->frame, EWK_CERTIFICATE_STATUS_NO_CERTIFICATE); @@ -1626,9 +1625,6 @@ Ewk_Certificate_Status ewk_frame_certificate_status_get(Evas_Object* ewkFrame) return EWK_CERTIFICATE_STATUS_TRUSTED; return EWK_CERTIFICATE_STATUS_UNTRUSTED; -#endif - - return EWK_CERTIFICATE_STATUS_NO_CERTIFICATE; } /** diff --git a/Source/WebKit/efl/ewk/ewk_main.cpp b/Source/WebKit/efl/ewk/ewk_main.cpp index cead2de72..7621d37d5 100644 --- a/Source/WebKit/efl/ewk/ewk_main.cpp +++ b/Source/WebKit/efl/ewk/ewk_main.cpp @@ -25,8 +25,12 @@ #include "Logging.h" #include "PageCache.h" #include "PageGroup.h" +#include "ResourceHandle.h" #include "ScriptController.h" #include "Settings.h" +#include "StorageTracker.h" +#include "StorageTrackerClientEfl.h" +#include "ewk_auth_soup.h" #include "ewk_logging.h" #include "ewk_network.h" #include "ewk_private.h" @@ -37,21 +41,12 @@ #include <Edje.h> #include <Eina.h> #include <Evas.h> -#include <stdlib.h> -#include <sys/stat.h> -#include <wtf/Threading.h> - -#if ENABLE(GLIB_SUPPORT) #include <glib-object.h> #include <glib.h> -#endif - -#if USE(SOUP) -// REMOVE-ME: see todo below -#include "ResourceHandle.h" -#include "ewk_auth_soup.h" #include <libsoup/soup.h> -#endif +#include <stdlib.h> +#include <sys/stat.h> +#include <wtf/Threading.h> static int _ewkInitCount = 0; @@ -135,16 +130,20 @@ int ewk_shutdown(void) return 0; } +static WebCore::StorageTrackerClientEfl* trackerClient() +{ + DEFINE_STATIC_LOCAL(WebCore::StorageTrackerClientEfl, trackerClient, ()); + return &trackerClient; +} + Eina_Bool _ewk_init_body(void) { -#if ENABLE(GLIB_SUPPORT) g_type_init(); if (!ecore_main_loop_glib_integrate()) WRN("Ecore was not compiled with GLib support, some plugins will not " "work (ie: Adobe Flash)"); -#endif WebCore::ScriptController::initializeThreading(); WebCore::initializeLoggingChannelsIfNecessary(); @@ -174,17 +173,11 @@ Eina_Bool _ewk_init_body(void) ewk_network_tls_certificate_check_set(false); - // TODO: this should move to WebCore, already reported to webkit-gtk folks: -#if USE(SOUP) - if (1) { - SoupSession* session = WebCore::ResourceHandle::defaultSession(); - soup_session_add_feature_by_type(session, SOUP_TYPE_CONTENT_SNIFFER); - soup_session_add_feature_by_type(session, SOUP_TYPE_CONTENT_DECODER); + WebCore::StorageTracker::initializeTracker(webkitDirectory.utf8().data(), trackerClient()); - SoupSessionFeature* auth_dialog = static_cast<SoupSessionFeature*>(g_object_new(EWK_TYPE_SOUP_AUTH_DIALOG, 0)); - soup_session_add_feature(session, auth_dialog); - } -#endif + SoupSession* session = WebCore::ResourceHandle::defaultSession(); + SoupSessionFeature* auth_dialog = static_cast<SoupSessionFeature*>(g_object_new(EWK_TYPE_SOUP_AUTH_DIALOG, 0)); + soup_session_add_feature(session, auth_dialog); return true; } diff --git a/Source/WebKit/efl/ewk/ewk_network.cpp b/Source/WebKit/efl/ewk/ewk_network.cpp index 0ca5bd1bb..541ccddab 100644 --- a/Source/WebKit/efl/ewk/ewk_network.cpp +++ b/Source/WebKit/efl/ewk/ewk_network.cpp @@ -21,18 +21,14 @@ #include "ewk_network.h" #include "NetworkStateNotifier.h" +#include "ResourceHandle.h" #include "ewk_logging.h" #include <Eina.h> -#include <wtf/text/CString.h> - -#if USE(SOUP) -#include "ResourceHandle.h" #include <libsoup/soup.h> -#endif +#include <wtf/text/CString.h> void ewk_network_proxy_uri_set(const char* proxy) { -#if USE(SOUP) SoupSession* session = WebCore::ResourceHandle::defaultSession(); if (!proxy) { @@ -46,14 +42,10 @@ void ewk_network_proxy_uri_set(const char* proxy) g_object_set(session, SOUP_SESSION_PROXY_URI, uri, NULL); soup_uri_free(uri); -#elif USE(CURL) - EINA_SAFETY_ON_TRUE_RETURN(1); -#endif } const char* ewk_network_proxy_uri_get(void) { -#if USE(SOUP) SoupURI* uri; SoupSession* session = WebCore::ResourceHandle::defaultSession(); g_object_get(session, SOUP_SESSION_PROXY_URI, &uri, NULL); @@ -65,9 +57,6 @@ const char* ewk_network_proxy_uri_get(void) WTF::String proxy = soup_uri_to_string(uri, false); return eina_stringshare_add(proxy.utf8().data()); -#elif USE(CURL) - EINA_SAFETY_ON_TRUE_RETURN_VAL(1, 0); -#endif } void ewk_network_state_notifier_online_set(Eina_Bool online) @@ -79,47 +68,35 @@ Eina_Bool ewk_network_tls_certificate_check_get() { bool checkCertificates = false; -#if USE(SOUP) SoupSession* defaultSession = WebCore::ResourceHandle::defaultSession(); g_object_get(defaultSession, "ssl-strict", &checkCertificates, NULL); -#endif return checkCertificates; } void ewk_network_tls_certificate_check_set(Eina_Bool checkCertificates) { -#if USE(SOUP) SoupSession* defaultSession = WebCore::ResourceHandle::defaultSession(); g_object_set(defaultSession, "ssl-strict", checkCertificates, NULL); -#endif } const char* ewk_network_tls_ca_certificates_path_get() { const char* bundlePath = 0; -#if USE(SOUP) SoupSession* defaultSession = WebCore::ResourceHandle::defaultSession(); g_object_get(defaultSession, "ssl-ca-file", &bundlePath, NULL); -#endif return bundlePath; } void ewk_network_tls_ca_certificates_path_set(const char* bundlePath) { -#if USE(SOUP) SoupSession* defaultSession = WebCore::ResourceHandle::defaultSession(); g_object_set(defaultSession, "ssl-ca-file", bundlePath, NULL); -#endif } SoupSession* ewk_network_default_soup_session_get() { -#if USE(SOUP) return WebCore::ResourceHandle::defaultSession(); -#else - return 0; -#endif } diff --git a/Source/WebKit/efl/ewk/ewk_network.h b/Source/WebKit/efl/ewk/ewk_network.h index 3977e9978..dbec81584 100644 --- a/Source/WebKit/efl/ewk/ewk_network.h +++ b/Source/WebKit/efl/ewk/ewk_network.h @@ -26,17 +26,21 @@ #define ewk_network_h #include <Eina.h> +#include <libsoup/soup-session.h> #ifdef __cplusplus extern "C" { #endif -typedef struct _SoupSession SoupSession; - /** * Sets the given proxy URI to network backend. * * @param proxy URI to set + * + * @note If the libsoup backend is being used, this function has effect on + * the @b default SoupSession, returned by ewk_network_default_soup_session_get(). + * If a different SoupSession is used and passed to ewk_view_soup_session_set(), + * this function will not have any effect on it. */ EAPI void ewk_network_proxy_uri_set(const char *proxy); @@ -46,6 +50,11 @@ EAPI void ewk_network_proxy_uri_set(const char *proxy); * The returned string should be freed by eina_stringshare_del() after use. * * @return current proxy URI or @c 0 if it's not set + * + * @note If the libsoup backend is being used, this function has effect on + * the @b default SoupSession, returned by ewk_network_default_soup_session_get(). + * If a different SoupSession is used and passed to ewk_view_soup_session_set(), + * this function will not have any effect on it. */ EAPI const char *ewk_network_proxy_uri_get(void); @@ -62,6 +71,11 @@ EAPI void ewk_network_state_notifier_online_set(Eina_Bool online); * By default, HTTPS connections are performed regardless of the validity of the certificate provided. * * @sa ewk_network_tls_ca_certificates_path_set + * + * @note If the libsoup backend is being used, this function has effect on + * the @b default SoupSession, returned by ewk_network_default_soup_session_get(). + * If a different SoupSession is used and passed to ewk_view_soup_session_set(), + * this function will not have any effect on it. */ EAPI Eina_Bool ewk_network_tls_certificate_check_get(void); @@ -73,6 +87,11 @@ EAPI Eina_Bool ewk_network_tls_certificate_check_get(void); * @param enable Whether to check the provided certificates or not. * * @sa ewk_network_tls_ca_certificates_path_set + * + * @note If the libsoup backend is being used, this function has effect on + * the @b default SoupSession, returned by ewk_network_default_soup_session_get(). + * If a different SoupSession is used and passed to ewk_view_soup_session_set(), + * this function will not have any effect on it. */ EAPI void ewk_network_tls_certificate_check_set(Eina_Bool enable); @@ -89,6 +108,11 @@ EAPI void ewk_network_tls_certificate_check_set(Eina_Bool enable); * By default, the path is not set, so all certificates are considered as not signed by a trusted root CA. * * @sa ewk_network_tls_certificate_check_set + * + * @note If the libsoup backend is being used, this function has effect on + * the @b default SoupSession, returned by ewk_network_default_soup_session_get(). + * If a different SoupSession is used and passed to ewk_view_soup_session_set(), + * this function will not have any effect on it. */ EAPI const char *ewk_network_tls_ca_certificates_path_get(void); @@ -107,17 +131,18 @@ EAPI const char *ewk_network_tls_ca_certificates_path_get(void); * @param path The path to the certificate bundle. * * @sa ewk_network_tls_certificate_check_set + * + * @note If the libsoup backend is being used, this function has effect on + * the @b default SoupSession, returned by ewk_network_default_soup_session_get(). + * If a different SoupSession is used and passed to ewk_view_soup_session_set(), + * this function will not have any effect on it. */ EAPI void ewk_network_tls_ca_certificates_path_set(const char *path); /** * Returns the default @c SoupSession used by all views. * - * This function is meaningful only if WebKit has been compiled with the - * @c Soup network backend. - * - * @return The default @c SoupSession in use, or @c NULL if another network - * backend was used. + * @return The default @c SoupSession in use. */ EAPI SoupSession *ewk_network_default_soup_session_get(void); diff --git a/Source/WebKit/efl/ewk/ewk_settings.cpp b/Source/WebKit/efl/ewk/ewk_settings.cpp index af561c3b6..d13b39e7e 100644 --- a/Source/WebKit/efl/ewk/ewk_settings.cpp +++ b/Source/WebKit/efl/ewk/ewk_settings.cpp @@ -24,6 +24,7 @@ #include "ApplicationCacheStorage.h" #include "CrossOriginPreflightResultCache.h" #include "DatabaseTracker.h" +#include "StorageTracker.h" #include "FontCache.h" #include "FrameView.h" #include "IconDatabase.h" @@ -57,6 +58,7 @@ static const char* s_offlineAppCachePath = 0; static const char* _ewk_icon_database_path = 0; static const char* s_webDatabasePath = 0; +static const char* s_localStoragePath = 0; static uint64_t s_webDatabaseQuota = 1 * 1024 * 1024; // 1MB. static WTF::String _ewk_settings_webkit_platform_get() @@ -111,6 +113,30 @@ void ewk_settings_web_database_clear() #endif } +void ewk_settings_local_storage_path_set(const char* path) +{ + WebCore::StorageTracker::tracker().setDatabaseDirectoryPath(WTF::String::fromUTF8(path)); + eina_stringshare_replace(&s_localStoragePath, path); +} + +const char* ewk_settings_local_storage_path_get(void) +{ + return s_localStoragePath; +} + +void ewk_settings_local_storage_database_clear() +{ + WebCore::StorageTracker::tracker().deleteAllOrigins(); +} + +void ewk_settings_local_storage_database_origin_clear(const char* url) +{ + EINA_SAFETY_ON_NULL_RETURN(url); + + const WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(url)); + WebCore::StorageTracker::tracker().deleteOrigin(WebCore::SecurityOrigin::create(kurl).get()); +} + void ewk_settings_web_database_path_set(const char* path) { #if ENABLE(SQL_DATABASE) diff --git a/Source/WebKit/efl/ewk/ewk_settings.h b/Source/WebKit/efl/ewk/ewk_settings.h index 1e61b4402..cce9a5aa7 100644 --- a/Source/WebKit/efl/ewk/ewk_settings.h +++ b/Source/WebKit/efl/ewk/ewk_settings.h @@ -68,6 +68,53 @@ EAPI void ewk_settings_web_database_clear(void); EAPI void ewk_settings_web_database_path_set(const char *path); /** + * Sets the current path to the directory where WebKit will write the + * HTML5 local storage indexing database (the one keeping track of + * individual views' local storage databases). + * + * By default, the value is @c ~/.webkit + * + * @param path the new local storage database directory path + * + * @note You may want to call + * ewk_view_setting_local_storage_database_path_set() on the same @p + * path, here, for your views. + */ +EAPI void ewk_settings_local_storage_path_set(const char* path); + +/** + * Returns directory's path where the HTML5 local storage indexing + * database is stored. + * + * This is guaranteed to be eina-stringshared, so whenever possible + * save yourself some cpu cycles and use eina_stringshare_ref() + * instead of eina_stringshare_add() or strdup(). + * + * @return database path or @c NULL, on errors. + * + * @see ewk_settings_local_storage_path_set() + */ +EAPI const char* ewk_settings_local_storage_path_get(void); + +/** + * Removes @b all HTML 5 local storage databases. + */ +EAPI void ewk_settings_local_storage_database_clear(); + +/** + * Clears the HTML 5 local storage database for the given URL + * (origin). + * + * @param url which URL to clear local storage to. + * + * After this call, the file holding the local storage database for + * that origin will be deleted, along with its entry on the local + * storage files database (a file stored under the path returned by + * ewk_settings_local_storage_path_get()). + */ +EAPI void ewk_settings_local_storage_database_origin_clear(const char *url); + +/** * Returns directory path where web database is stored. * * By default, the value is @c ~/.webkit diff --git a/Source/WebKit/efl/ewk/ewk_view.cpp b/Source/WebKit/efl/ewk/ewk_view.cpp index 9789c1c30..8a9674022 100644 --- a/Source/WebKit/efl/ewk/ewk_view.cpp +++ b/Source/WebKit/efl/ewk/ewk_view.cpp @@ -1,6 +1,6 @@ /* Copyright (C) 2009-2010 ProFUSION embedded systems - Copyright (C) 2009-2011 Samsung Electronics + Copyright (C) 2009-2012 Samsung Electronics This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -50,6 +50,7 @@ #include "ProgressTracker.h" #include "RefPtrCairo.h" #include "RenderTheme.h" +#include "ResourceHandle.h" #include "Settings.h" #include "c_instance.h" #include "ewk_logging.h" @@ -59,6 +60,7 @@ #include <Evas.h> #include <eina_safety_checks.h> #include <inttypes.h> +#include <libsoup/soup-session.h> #include <limits> #include <math.h> #include <sys/time.h> @@ -68,6 +70,10 @@ #include "DeviceOrientationClientEfl.h" #endif +#if ENABLE(VIBRATION) +#include "VibrationClientEfl.h" +#endif + static const float zoomMinimum = 0.05; static const float zoomMaximum = 4.0; @@ -211,6 +217,7 @@ struct _Ewk_View_Private_Data { } center; Ecore_Animator* animator; } animatedZoom; + SoupSession* soupSession; }; #ifndef EWK_TYPE_CHECK @@ -604,15 +611,19 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData) pageClients.editorClient = new WebCore::EditorClientEfl(smartData->self); pageClients.dragClient = new WebCore::DragClientEfl; pageClients.inspectorClient = new WebCore::InspectorClientEfl; -#if ENABLE(DEVICE_ORIENTATION) - pageClients.deviceMotionClient = new WebCore::DeviceMotionClientEfl; - pageClients.deviceOrientationClient = new WebCore::DeviceOrientationClientEfl; -#endif priv->page = new WebCore::Page(pageClients); if (!priv->page) { CRITICAL("Could not create WebKit Page"); goto error_page; } +#if ENABLE(DEVICE_ORIENTATION) + WebCore::provideDeviceMotionTo(priv->page, new WebCore::DeviceMotionClientEfl); + WebCore::provideDeviceOrientationTo(priv->page, new WebCore::DeviceOrientationClientEfl); +#endif + +#if ENABLE(VIBRATION) + WebCore::provideVibrationTo(priv->page, new WebCore::VibrationClientEfl(smartData->self)); +#endif priv->pageSettings = priv->page->settings(); if (!priv->pageSettings) { @@ -714,6 +725,8 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData) goto error_history; } + priv->soupSession = WebCore::ResourceHandle::defaultSession(); + return priv; error_history: @@ -3913,6 +3926,25 @@ Ewk_Page_Visibility_State ewk_view_visibility_state_get(const Evas_Object* ewkVi #endif } +SoupSession* ewk_view_soup_session_get(const Evas_Object* ewkView) +{ + EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0); + EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0); + return priv->soupSession; +} + +void ewk_view_soup_session_set(Evas_Object* ewkView, SoupSession* session) +{ + EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData); + EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv); + if (!SOUP_IS_SESSION_ASYNC(session)) { + ERR("WebKit requires an SoupSessionAsync to work properly, but " + "a SoupSessionSync was provided."); + return; + } + priv->soupSession = session; +} + namespace EWKPrivate { WebCore::Page *corePage(const Evas_Object *ewkView) diff --git a/Source/WebKit/efl/ewk/ewk_view.h b/Source/WebKit/efl/ewk/ewk_view.h index d3474a64b..7de0e462f 100644 --- a/Source/WebKit/efl/ewk/ewk_view.h +++ b/Source/WebKit/efl/ewk/ewk_view.h @@ -95,6 +95,7 @@ #include <Evas.h> #include <cairo.h> +#include <libsoup/soup-session.h> #ifdef __cplusplus extern "C" { @@ -2335,6 +2336,34 @@ EAPI Eina_Bool ewk_view_mixed_content_displayed_get(const Evas_Object *o); */ EAPI Eina_Bool ewk_view_mixed_content_run_get(const Evas_Object *o); +/** + * Returns the SoupSession associated with this view. + * + * By default, all views share the same, default soup session also available + * by calling ewk_network_default_soup_session_get. + * + * @param o The view to query. + * + * @sa ewk_view_soup_session_set, ewk_network_default_soup_session_get + */ +EAPI SoupSession* ewk_view_soup_session_get(const Evas_Object *o); + +/** + * Associates a new SoupSession with this view. + * + * Only sessions of type SoupSessionAsync are supported. + * + * @note Changing the SoupSession should not be needed in most cases. If + * a different SoupSession is used, the cookie management and some + * network functions in ewk will not have any effect on it. + * + * @param o The view to change. + * @param session The new SoupSession. + * + * @sa ewk_view_soup_session_get, ewk_network_default_soup_session_get + */ +EAPI void ewk_view_soup_session_set(Evas_Object *o, SoupSession *session); + #ifdef __cplusplus } #endif |