summaryrefslogtreecommitdiff
path: root/Source/WebKit/efl
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/efl')
-rw-r--r--Source/WebKit/efl/CMakeListsEfl.txt260
-rw-r--r--Source/WebKit/efl/ChangeLog242
-rw-r--r--Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h1
-rw-r--r--Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp29
-rw-r--r--Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h1
-rw-r--r--Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp2
-rw-r--r--Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h4
-rw-r--r--Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp6
-rw-r--r--Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.cpp57
-rw-r--r--Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.h15
-rw-r--r--Source/WebKit/efl/WebCoreSupport/StorageTrackerClientEfl.cpp37
-rw-r--r--Source/WebKit/efl/WebCoreSupport/StorageTrackerClientEfl.h35
-rw-r--r--Source/WebKit/efl/WebCoreSupport/VibrationClientEfl.cpp50
-rw-r--r--Source/WebKit/efl/WebCoreSupport/VibrationClientEfl.h45
-rw-r--r--Source/WebKit/efl/ewebkit.pc.in2
-rw-r--r--Source/WebKit/efl/ewk/ewk_auth.cpp6
-rw-r--r--Source/WebKit/efl/ewk/ewk_cookies.cpp24
-rw-r--r--Source/WebKit/efl/ewk/ewk_cookies.h6
-rw-r--r--Source/WebKit/efl/ewk/ewk_frame.cpp4
-rw-r--r--Source/WebKit/efl/ewk/ewk_main.cpp41
-rw-r--r--Source/WebKit/efl/ewk/ewk_network.cpp27
-rw-r--r--Source/WebKit/efl/ewk/ewk_network.h39
-rw-r--r--Source/WebKit/efl/ewk/ewk_settings.cpp26
-rw-r--r--Source/WebKit/efl/ewk/ewk_settings.h47
-rw-r--r--Source/WebKit/efl/ewk/ewk_view.cpp42
-rw-r--r--Source/WebKit/efl/ewk/ewk_view.h29
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