sync with master
authorJinkun Jang <jinkun.jang@samsung.com>
Sat, 16 Mar 2013 06:12:35 +0000 (15:12 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Sat, 16 Mar 2013 06:12:35 +0000 (15:12 +0900)
15 files changed:
inc/FWebBookmarkItem.h
inc/FWebControls.h
inc/FWebCtrlIWebUiEventListener.h
inc/FWebCtrlIWebUiEventListenerF.h
inc/FWebCtrlWebSetting.h
inc/FWebWebHistory.h
src/FWebWebBookmark.cpp
src/FWebWebHistory.cpp
src/controls/FWebCtrlWeb.cpp
src/controls/FWebCtrl_EflWebkit.cpp
src/controls/FWebCtrl_IWebEventListener.h [changed mode: 0644->0755]
src/controls/FWebCtrl_WebEvent.cpp
src/controls/FWebCtrl_WebEventArg.h
src/controls/FWebCtrl_WebImpl.cpp
src/controls/FWebCtrl_WebImpl.h

index 08ef21d..62f0564 100755 (executable)
@@ -91,6 +91,9 @@ public:
         *
         * @since               2.1
         *
+        * @privlevel   platform
+        * @privilege   http://tizen.org/privilege/bookmark.read
+        *
         * @return              The title of the current bookmark item
         */
        Tizen::Base::String GetTitle(void) const;
@@ -100,6 +103,9 @@ public:
         *
         * @since               2.1
         *
+        * @privlevel   platform
+        * @privilege   http://tizen.org/privilege/bookmark.read
+        *
         * @return              The URL of the current bookmark item @n
         *                              If the item type is folder, this method will return the empty string.
         * @see IsFolder()
@@ -113,6 +119,9 @@ public:
         *
         * @return              The image
         *
+        * @privlevel   platform
+        * @privilege   http://tizen.org/privilege/bookmark.read
+        *
         * @exception   E_SUCCESS       The method is successful.
         * @exception   E_SYSTEM        Either of the following conditions has occurred: @n
         *                                              - The method cannot proceed due to a severe system error. @n
@@ -126,6 +135,9 @@ public:
         *
         * @since               2.1
         *
+        * @privlevel   platform
+        * @privilege   http://tizen.org/privilege/bookmark.read
+        *
         * @return              The parent folder id of the current bookmark item @n
         *                              If the current bookmark item is the one in topmost level, this method will return ::ROOT_FOLDER_ID.
         */
@@ -136,6 +148,9 @@ public:
         *
         * @since               2.1
         *
+        * @privlevel   platform
+        * @privilege   http://tizen.org/privilege/bookmark.read
+        *
         * @return              @c true if the type of current bookmark item is folder, @n
         *                                      else @c false
         */
index 450316a..6473a43 100755 (executable)
@@ -33,6 +33,7 @@
 #include <FWebCtrlIWebDownloadListener.h>
 #include <FWebCtrlIWebKeypadEventListener.h>
 #include <FWebCtrlIWebUiEventListener.h>
+#include <FWebCtrlIWebUiEventListenerF.h>
 #include <FWebCtrlPageNavigationList.h>
 #include <FWebCtrlWeb.h>
 #include <FWebCtrlWebSetting.h>
index 0f8b087..9662c74 100755 (executable)
@@ -57,7 +57,7 @@ public:
         *
         * @since               2.0
         *
-        * @param[in]   source                  The source of the event
+        * @param[in]   source          The source of the event
         */
        virtual void OnWebPageShowRequested(Tizen::Web::Controls::Web& source) = 0;
 
@@ -80,7 +80,7 @@ public:
         *
         * @since                2.0
         *
-        * @param[in]   source                  The source of the closing event
+        * @param[in]   source          The source of the closing event
         */
        virtual void OnWebWindowCloseRequested(Tizen::Web::Controls::Web& source) = 0;
 
@@ -89,12 +89,24 @@ public:
         *
         * @since               2.0
         *
-        * @param[in]   source                  The source of the event
+        * @param[in]   source          The source of the event
         * @param[in]   startPoint              The starting point of the selected block
         * @param[in]   endPoint                The ending point of the selected block
         */
        virtual void OnWebPageBlockSelected(Tizen::Web::Controls::Web& source, Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) = 0;
 
+       /**
+        * Called just after touch move event whether preventDefault() method is triggered or not. @n
+        * The application which wants to support W3C preventDefault() feature is recommended to use this callback and delay to handle touch move event until receiving this callback if needed.
+        *
+        * @since               2.1
+        *
+        * @param[in]   source          The source of the event
+        * @param[in]   trigger         Set to @c true if the preventDefault() method is triggered, @n
+        *                                              else @c false
+        * @remarks                             This callback is always called just after touch move event and return true when preventDefault() is triggered on touch start or touch move event.
+        */
+       virtual void OnWebPreventDefaultTriggered(Tizen::Web::Controls::Web& source, bool trigger) {};
 
 protected:
        //
@@ -104,15 +116,6 @@ protected:
        //
        // @since               2.0
        //
-       virtual void IWebUiEventListener_Reserved1(void) {};
-
-       //
-       // This method is for internal use only. Using this method can cause behavioral, security-related, and consistency-related issues in the application.
-       //
-       // Gets the Impl instance.
-       //
-       // @since               2.0
-       //
        virtual void IWebUiEventListener_Reserved2(void) {};
 
        //
index 5a3b059..9e819f5 100755 (executable)
@@ -57,7 +57,7 @@ public:
         *\r
         * @since               2.1\r
         *\r
-        * @param[in]   source                  The source of the event\r
+        * @param[in]   source          The source of the event\r
         */\r
        virtual void OnWebPageShowRequested(Tizen::Web::Controls::Web& source) = 0;\r
 \r
@@ -78,7 +78,7 @@ public:
         *\r
         * @since               2.1\r
         *\r
-        * @param[in]   source                  The source of the closing event\r
+        * @param[in]   source          The source of the closing event\r
         */\r
        virtual void OnWebWindowCloseRequested(Tizen::Web::Controls::Web& source) = 0;\r
 \r
@@ -87,22 +87,26 @@ public:
         *\r
         * @since               2.1\r
         *\r
-        * @param[in]   source                  The source of the event\r
+        * @param[in]   source          The source of the event\r
         * @param[in]   startPoint              The starting point of the selected block\r
         * @param[in]   endPoint                The ending point of the selected block\r
         */\r
        virtual void OnWebPageBlockSelected(Tizen::Web::Controls::Web& source, Tizen::Graphics::FloatPoint& startPoint, Tizen::Graphics::FloatPoint& endPoint) = 0;\r
 \r
-protected:\r
-       //\r
-       // This method is for internal use only. Using this method can cause behavioral, security-related, and consistency-related issues in the application.\r
-       //\r
-       // Gets the Impl instance.\r
-       //\r
-       // @since               2.1\r
-       //\r
-       virtual void IWebUiEventListenerF_Reserved1(void) {};\r
+       /**\r
+        * Called just after touch move event whether preventDefault() method is triggered or not. @n\r
+        * The application which wants to support W3C preventDefault() feature is recommended to use this callback and delay to handle touch move event until receiving this callback if needed.\r
+        *\r
+        * @since               2.1\r
+        *\r
+        * @param[in]   source          The source of the event\r
+        * @param[in]   trigger         Set to @c true if the preventDefault() method is triggered, @n\r
+        *                                              else @c false\r
+        * @remarks                             This callback is always called just after touch move event and return true when preventDefault() is triggered on touch start or touch move event.\r
+        */\r
+       virtual void OnWebPreventDefaultTriggered(Tizen::Web::Controls::Web& source, bool trigger) {};\r
 \r
+protected:\r
        //\r
        // This method is for internal use only. Using this method can cause behavioral, security-related, and consistency-related issues in the application.\r
        //\r
index 9cef0cd..1fe1596 100755 (executable)
@@ -101,12 +101,15 @@ public:
        virtual ~WebSetting(void);
 
        /**
-       * Sets a cache control strategy for a %Web control.
-       *
-       * @since                2.0
-       *
-       * @param[in]    mode                    A cache mode
-       */
+        * Sets a cache control strategy for a %Web control.
+        *
+        * @since               2.0
+        *
+        * @privlevel   public
+        * @privilege   http://tizen.org/privilege/web.service
+        *
+        * @param[in]   mode                    A cache mode
+        */
        void SetCacheControl(CacheMode mode);
 
        /**
@@ -225,6 +228,9 @@ public:
         *
         * @since               2.0
         *
+        * @privlevel   public
+        * @privilege   http://tizen.org/privilege/web.service
+        *
         * @param[in]   mode                    A certificate error handling mode
         */
        void SetCertificateErrorHandlingMode(CertificateErrorHandlingMode mode);
@@ -304,6 +310,9 @@ public:
         *
         * @since               2.0
         *
+        * @privlevel   public
+        * @privilege   http://tizen.org/privilege/web.service
+        *
         * @param[in]   enable                  Set to @c true if the %Web control should support html5 geolocation feature, @n
         *                                                                      else @c false
         */
@@ -330,8 +339,6 @@ public:
         *
         * @param[in]   enable                  Set to @c true if the %Web control should save form data automatically and supports autocomplete feature, @n
         *                                                                      else @c false
-        * @exception   E_SUCCESS                       The method is successful.
-        * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
         */
        void SetAutoFormDataShowEnabled(bool enable);
 
@@ -350,13 +357,12 @@ public:
         * Decides if a %Web control saves id/password for login form automatically and supports autofill feature.
         * 
         * @since               2.1
+        *
         * @privlevel   public
         * @privilege   http://tizen.org/privilege/web.service
         *
         * @param[in]   enable                  Set to @c true if the %Web control should save login id/password automatically and supports autofill feature, @n
         *                                                                      else @c false
-        * @exception   E_SUCCESS                       The method is successful.
-        * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
         */
        void SetAutoLoginFormFillEnabled(bool enable);
 
index 2d316ea..f961b8e 100755 (executable)
@@ -69,13 +69,9 @@ public:
         *
         * @since               2.0
         *
-        * @privlevel   public
-        * @privilege   http://tizen.org/privilege/web.privacy
-        *
         * @return              An error code
         * @exception   E_SUCCESS                       The method is successful.
         * @exception   E_SYSTEM                        A system error has occurred.
-        * @exception   E_PRIVILEGE_DENIED      The application does not have the privilege to call this method.
         */
        result Construct(void);
 
index 93bc54a..84bad03 100755 (executable)
@@ -68,7 +68,7 @@ WebBookmark::Construct(void)
 
        __pWebBookmarkImpl = pWebBookmarkImpl.release();
 
-       return r;
+       return E_SUCCESS;
 }
 
 
@@ -154,6 +154,7 @@ WebBookmark::GetItemCount(void) const
 {
        SysAssertf(__pWebBookmarkImpl != null, "Not yet constructed. Construct() should be called before use.");
 
+       ClearLastResult();
        result r = E_SUCCESS;
 
        r = _AccessController::CheckUserPrivilege(_PRV_BOOKMARK_READ);
index 5e1cfdf..92d34f8 100755 (executable)
@@ -57,9 +57,6 @@ WebHistory::Construct(void)
 
        result r = E_SUCCESS;
 
-       r = _AccessController::CheckUserPrivilege(_PRV_WEB_PRIVACY);
-       SysTryReturnResult(NID_WEB, r == E_SUCCESS, E_PRIVILEGE_DENIED, "The application does not have the privilege to call this method.");
-
        std::unique_ptr<_WebHistoryImpl> pWebHistoryImpl(new (std::nothrow) _WebHistoryImpl());
        SysTryReturnResult(NID_WEB, pWebHistoryImpl.get(), E_OUT_OF_MEMORY, "Memory allocation failed.");
 
@@ -68,7 +65,7 @@ WebHistory::Construct(void)
 
        __pWebHistoryImpl = pWebHistoryImpl.release();
 
-       return r;
+       return E_SUCCESS;
 }
 
 
index e707326..438b1b6 100755 (executable)
@@ -75,6 +75,7 @@ Web::Construct(const Rectangle& rect)
        return E_SUCCESS;
 }
 
+
 result
 Web::Construct(const FloatRectangle& rect)
 {
@@ -380,7 +381,9 @@ Web::SetZoomLevel(float level)
        _WebImpl* pWebImpl = _WebImpl::GetInstance(this);
        SysAssertf(pWebImpl != null && pWebImpl->HasValidNativeNode(), "Not yet constructed or Not attached to parent control.");
 
-       result r = pWebImpl->SetZoomLevel(level);
+       result r = E_SUCCESS;
+
+       r = pWebImpl->SetZoomLevel(level);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
        SysLog(NID_WEB_CTRL, "The current value of level is %f", level);
@@ -505,8 +508,7 @@ Web::ReleaseBlock(void)
 
        result r = E_SUCCESS;
 
-       r = pWebImpl->ReleaseBlock();
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pWebImpl->ReleaseBlock();
 
        return E_SUCCESS;
 }
@@ -520,8 +522,7 @@ Web::GetBlockRange(Point& startPoint, Point& endPoint) const
 
        result r = E_SUCCESS;
 
-       r = pWebImpl->GetBlockRange(startPoint, endPoint);
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pWebImpl->GetBlockRange(startPoint, endPoint);
 
        return E_SUCCESS;
 }
@@ -535,8 +536,7 @@ Web::GetBlockRange(FloatPoint& startPoint, FloatPoint& endPoint) const
 
        result r = E_SUCCESS;
 
-       r = pWebImpl->GetBlockRange(startPoint, endPoint);
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pWebImpl->GetBlockRange(startPoint, endPoint);
 
        return E_SUCCESS;
 }
@@ -558,8 +558,7 @@ Web::SetScrollEnabled(bool enable)
        _WebImpl* pWebImpl = _WebImpl::GetInstance(this);
        SysAssertf(pWebImpl != null, "Not yet constructed or Not attached to parent control.");
 
-       result r = pWebImpl->SetScrollEnabled(enable);
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pWebImpl->SetScrollEnabled(enable);
 
        SysLog(NID_WEB_CTRL, "The current value of enable is %d", enable);
 
@@ -668,8 +667,7 @@ Web::SetPrivateBrowsingEnabled(bool enable)
        r = _AccessController::CheckUserPrivilege(_PRV_WEB_SERVICE);
        SysTryReturnResult(NID_WEB_CTRL, r == E_SUCCESS, E_PRIVILEGE_DENIED, "The application does not have the privilege to call this method.");
 
-       r = pWebImpl->SetPrivateBrowsingEnabled(enable);
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pWebImpl->SetPrivateBrowsingEnabled(enable);
 
        SysLog(NID_WEB_CTRL, "The current value of enable is %d", enable);
 
index df9ade9..6c40b11 100755 (executable)
@@ -100,8 +100,6 @@ _EflWebkit::Construct(const Rectangle& rect, VisualElement& containerVisualEleme
        __pWebFrame = ewk_view_add(pEvas);
        SysTryReturnResult(NID_WEB_CTRL, __pWebFrame, E_SYSTEM, "A system error has been occurred. Failed to create webkit instance.");
 
-       pEflNode->AddNativeSmartObject(containerVisualElement, __pWebFrame);
-
        evas_object_pass_events_set(__pWebFrame, EINA_TRUE);
 
        r = SetWebConfiguration();
@@ -113,6 +111,8 @@ _EflWebkit::Construct(const Rectangle& rect, VisualElement& containerVisualEleme
        evas_object_resize(__pWebFrame, pXformer->TransformHorizontal(rect.width), pXformer->TransformVertical(rect.height));
        evas_object_move(__pWebFrame, pXformer->TransformHorizontal(rect.x), pXformer->TransformVertical(rect.y));
 
+       pEflNode->AddNativeSmartObject(containerVisualElement, __pWebFrame);
+
        return E_SUCCESS;
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index 23e723b..14114c6
@@ -46,6 +46,7 @@ public:
        virtual result OnHandleLoadingEvent(const Tizen::Base::Runtime::IEventArg& arg) = 0;
        virtual result OnHandleWebDownloadEvent(const Tizen::Base::Runtime::IEventArg& arg) = 0;
        virtual result OnHandleWebUiEvent(const Tizen::Base::Runtime::IEventArg& arg) = 0;
+       virtual result OnHandleWebUiEventF(const Tizen::Base::Runtime::IEventArg& arg) = 0;
        virtual result OnHandleTextSearchEvent(const Tizen::Base::Runtime::IEventArg& arg) = 0;
 
 }; // _IWebEventListener
index 7a45d9f..ad2f1af 100755 (executable)
@@ -94,6 +94,10 @@ _WebEvent::FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen:
                r = pWebListener->OnHandleWebUiEvent(arg);
                break;
 
+       case WEB_EVENT_WEBUIEVENTLISTENER_FLOAT:
+               r = pWebListener->OnHandleWebUiEventF(arg);
+               break;
+
        case WEB_EVENT_TEXTSEARCHLISTENER:
                r = pWebListener->OnHandleTextSearchEvent(arg);
                break;
index c2fd78f..236854b 100755 (executable)
@@ -69,8 +69,15 @@ enum _WebEventType
        WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED,
        WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED,
        WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED,
+       WEB_EVENT_WEBUIEVENTLISTENER_PREVENT_DEFAULT_TRIGGERED,
 
-       WEB_EVENT_TEXTSEARCHLISTENER = 0x500,
+       WEB_EVENT_WEBUIEVENTLISTENER_FLOAT = 0x500,
+       WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED_FLOAT,
+       WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED_FLOAT,
+       WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED_FLOAT,
+       WEB_EVENT_WEBUIEVENTLISTENER_PREVENT_DEFAULT_TRIGGERED_FLOAT,
+
+       WEB_EVENT_TEXTSEARCHLISTENER = 0x600,
        WEB_EVENT_TEXTSEARCHLISTENER_TEXT_FOUND
 };
 
@@ -185,8 +192,7 @@ public:
        {
                BLOCK_START,
                BLOCK_END,
-               BLOCK_START_FLOAT,
-               BLOCK_END_FLOAT
+               PREVENT_DEFAULT
        };
 
        result SetEventInfo(EventInfoKey key, const Tizen::Base::Object& value);
index 252ab61..aa75d06 100755 (executable)
@@ -1128,6 +1128,22 @@ OnDidStartDownloadCallback(const char* pUrl, void* pUserData)
 }
 
 
+result
+FireWebPageShowRequestedEvent(_WebImpl* pImpl, int event)
+{
+       result r = E_SUCCESS;
+
+       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(event));
+       SysTryReturnResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = pImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pEventArg.release();
+
+       return E_SUCCESS;
+}
+
+
 void
 OnWebPageShowRequested(void* pUserData, Evas_Object* pView, void* pEventInfo)
 {
@@ -1138,23 +1154,15 @@ OnWebPageShowRequested(void* pUserData, Evas_Object* pView, void* pEventInfo)
        {
                result r = E_SUCCESS;
 
-               std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED));
-               SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-               r = pImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+               r = FireWebPageShowRequestedEvent(pImpl, WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED);
                SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-               pEventArg.release();
        }
        if (pImpl->GetUiEventListenerF())
        {
                result r = E_SUCCESS;
 
-               std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED));
-               SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-               r = pImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+               r = FireWebPageShowRequestedEvent(pImpl, WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED_FLOAT);
                SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-               pEventArg.release();
        }
 }
 
@@ -1195,6 +1203,22 @@ OnWebWindowCreateRequested(void* pUserData, Evas_Object* pView, void* pEventInfo
 }
 
 
+result
+FireWebWindowClosedRequestedEvent(_WebImpl* pImpl, int event)
+{
+       result r = E_SUCCESS;
+
+       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(event));
+       SysTryReturnResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "Memory allocation failed.");
+
+       r = pImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pEventArg.release();
+
+       return E_SUCCESS;
+}
+
+
 void
 OnWebWindowClosedRequested(void* pUserData, Evas_Object* pView, void* pEventInfo)
 {
@@ -1206,23 +1230,58 @@ OnWebWindowClosedRequested(void* pUserData, Evas_Object* pView, void* pEventInfo
        {
                result r = E_SUCCESS;
 
-               std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED));
-               SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-               r = pChildImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+               r = FireWebWindowClosedRequestedEvent(pChildImpl, WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED);
                SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-               pEventArg.release();
        }
        if (pParentImpl->GetUiEventListenerF())
        {
                result r = E_SUCCESS;
 
-               std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED));
-               SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+               r = FireWebWindowClosedRequestedEvent(pChildImpl, WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED_FLOAT);
+               SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+}
+
+
+result
+FireWebPreventDefaultTriggeredEvent(_WebImpl* pImpl, int event, bool trigger)
+{
+       result r = E_SUCCESS;
+
+       std::unique_ptr<Boolean> pPreventTrigger(new (std::nothrow) Boolean(trigger));
+       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(event));
+       SysTryReturnResult(NID_WEB_CTRL, pPreventTrigger.get() && pEventArg.get(), E_OUT_OF_MEMORY, " Memory allocation failed." );
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::PREVENT_DEFAULT, *pPreventTrigger.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+
+       r = pImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+
+       return E_SUCCESS;
+}
+
+
+void
+OnWebPreventDefaultTriggered(void* pUserData, Evas_Object* pView, void* pEventInfo)
+{
+       _WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
+       Eina_Bool* pTrigger = reinterpret_cast< Eina_Bool* >(pEventInfo);
+       SysAssertf(pImpl && pTrigger, "Failed to request");
+
+       if (pImpl->GetUiEventListener())
+       {
+               result r = E_SUCCESS;
 
-               r = pChildImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+               r = FireWebPreventDefaultTriggeredEvent(pImpl, WEB_EVENT_WEBUIEVENTLISTENER_PREVENT_DEFAULT_TRIGGERED, static_cast< bool >(*pTrigger));
+               SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+       if (pImpl->GetUiEventListenerF())
+       {
+               result r = E_SUCCESS;
+
+               r = FireWebPreventDefaultTriggeredEvent(pImpl, WEB_EVENT_WEBUIEVENTLISTENER_PREVENT_DEFAULT_TRIGGERED_FLOAT, static_cast< bool >(*pTrigger));
                SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-               pEventArg.release();
        }
 }
 
@@ -1757,7 +1816,7 @@ _WebImpl::_WebImpl(Web* pWeb, Tizen::Ui::_Control* pCore)
        __textSearch.__caseSensitive = false;
        __textSearch.__pending = 0;
        __textSearch.__currentIndex = 1;
-       __textSearch.__totalCount -1;
+       __textSearch.__totalCount -1;
        __textSearch.__text = L"";
 }
 
@@ -2642,7 +2701,10 @@ _WebImpl::GetElementByPointN(const FloatPoint& point) const
 {
        const Point integerPoint(_CoordinateSystemUtils::ConvertToInteger(point));
 
-       return GetElementByPointN(integerPoint);
+       std::unique_ptr<const HitElementResult> pHitElementResult(GetElementByPointN(integerPoint));
+       SysTryReturn(NID_WEB_CTRL, pHitElementResult.get(), null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+       return pHitElementResult.release();
 }
 
 
@@ -2684,21 +2746,19 @@ _WebImpl::IsPrivateBrowsingEnabled(void) const
 }
 
 
-result
+void
 _WebImpl::SetPrivateBrowsingEnabled(bool enable)
 {
        if (__pWebCore->GetWebNativeNode() == null)
        {
                _WebSettingImpl::GetInstance(__pWebSetting.get())->SetPrivateBrowsingEnabled(enable);
-               return E_SUCCESS;
+               return;
        }
 
        Ewk_Settings* pSettings = ewk_view_settings_get(__pWebCore->GetWebNativeNode());
        SysAssertf(pSettings, "Failed to get webkit instance.");
 
        ewk_settings_private_browsing_enabled_set(pSettings, static_cast< Eina_Bool >(enable));
-
-       return E_SUCCESS;
 }
 
 
@@ -2901,12 +2961,10 @@ _WebImpl::SetTextSearchListener(ITextSearchListener* pTextSearchListener)
 }
 
 
-result
+void
 _WebImpl::SetScrollEnabled(bool enable)
 {
        _WebSettingImpl::GetInstance(__pWebSetting.get())->SetScrollEnabled(enable);
-
-       return E_SUCCESS;
 }
 
 
@@ -2936,7 +2994,7 @@ _WebImpl::InitJsBridgeList(void)
 
        __pJsBridgeList = std::move(pJsBridgeList);
 
-       return r;
+       return E_SUCCESS;
 }
 
 
@@ -2951,7 +3009,7 @@ _WebImpl::AddJavaScriptBridge(const IJavaScriptBridge& jsBridge)
        r = __pJsBridgeList->Add(key, pJsBridge);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       return r;
+       return E_SUCCESS;
 }
 
 
@@ -2966,7 +3024,7 @@ _WebImpl::RemoveJavaScriptBridge(const IJavaScriptBridge& jsBridge)
        r = __pJsBridgeList->Remove(key);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       return r;
+       return E_SUCCESS;
 }
 
 
@@ -3109,6 +3167,8 @@ _WebImpl::SetEventListenerCallback(void) const
        evas_object_smart_callback_add(pWebNativeNode, "contenthandler,unregistration,requested", OnContentHandlerUnregistrationRequested, this);
        evas_object_smart_callback_add(pWebNativeNode, "text,found", OnTextFound, this);
 
+       evas_object_smart_callback_add(pWebNativeNode, "touchmove,handled", OnWebPreventDefaultTriggered, this);
+
        Ewk_Context* pContext = ewk_view_context_get(pWebNativeNode);
        SysAssertf(pContext, "Failed to get webkit instance.");
        ewk_context_did_start_download_callback_set(pContext, OnDidStartDownloadCallback, const_cast< _WebImpl* >(this));
@@ -3178,6 +3238,8 @@ _WebImpl::RemoveEventListenerCallback(void) const
 
        evas_object_smart_callback_del(pWebNativeNode, "text,found", OnTextFound);
 
+       evas_object_smart_callback_del(pWebNativeNode, "touchmove,handled", OnWebPreventDefaultTriggered);
+
        ewk_view_open_panel_callback_set(null, null, null);
 
        evas_object_event_callback_del(pWebNativeNode, EVAS_CALLBACK_FOCUS_IN, OnWebNativeNodeFocusGained);
@@ -3213,22 +3275,93 @@ _WebImpl::SetBlockSelectionPosition(const Point& startPoint)
 result
 _WebImpl::SetBlockSelectionPosition(const FloatPoint& startPoint)
 {
-       const Point integerPoint(_CoordinateSystemUtils::ConvertToInteger(startPoint));
+       Evas_Object* pWebNativeNode = __pWebCore->GetWebNativeNode();
+
+       Ewk_View_Smart_Data* pSmartData = (Ewk_View_Smart_Data*) evas_object_smart_data_get(pWebNativeNode);
+       SysAssertf(pSmartData, "Failed to request");
+
+       Point absPoint(__pWebCore->GetAbsoluteCoordinate(_CoordinateSystemUtils::ConvertToInteger(startPoint)));
+
+       pSmartData->api->text_selection_down(pSmartData, absPoint.x, absPoint.y);
+       pSmartData->api->text_selection_up(pSmartData, absPoint.x, absPoint.y);
 
-       return SetBlockSelectionPosition(integerPoint);
+       ewk_view_command_execute(pWebNativeNode, "SelectWord", 0);
+
+       SysTryReturnResult(NID_WEB_CTRL, GetTextFromBlock().GetLength() > 0, E_INVALID_ARG, "Failed to set text selection up.");
+
+       if (__pUserUiListenerF)
+       {
+               FireWebPageBlockSelectedEventF();
+       }
+
+       return E_SUCCESS;
 }
 
 
-result
+void
+_WebImpl::FireWebPageBlockSelectedEvent(void) const
+{
+       result r = E_SUCCESS;
+
+       std::unique_ptr<Point> startPoint(new (std::nothrow) Point());
+       std::unique_ptr<Point> endPoint(new (std::nothrow) Point());
+       SysTryReturnVoidResult(NID_WEB_CTRL, startPoint.get() && endPoint.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+       GetBlockRange(*startPoint.get(), *endPoint.get());
+
+       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED));
+       SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_START, *startPoint.get());
+       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       startPoint.release();
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_END, *endPoint.get());
+       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       endPoint.release();
+
+       r = __pWebEvent->FireAsync(*pEventArg.get());
+       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       pEventArg.release();
+}
+
+
+void
+_WebImpl::FireWebPageBlockSelectedEventF(void) const
+{
+       result r = E_SUCCESS;
+
+       std::unique_ptr<FloatPoint> startPoint(new (std::nothrow) FloatPoint());
+       std::unique_ptr<FloatPoint> endPoint(new (std::nothrow) FloatPoint());
+       SysTryReturnVoidResult(NID_WEB_CTRL, startPoint.get() && endPoint.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+       GetBlockRange(*startPoint.get(), *endPoint.get());
+
+       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED_FLOAT));
+       SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_START, *startPoint.get());
+       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       startPoint.release();
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_END, *endPoint.get());
+       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       endPoint.release();
+
+       r = __pWebEvent->FireAsync(*pEventArg.get());
+       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       pEventArg.release();
+}
+
+
+void
 _WebImpl::ReleaseBlock(void)
 {
        ewk_view_command_execute(__pWebCore->GetWebNativeNode(), "Unselect", 0);
-
-       return E_SUCCESS;
 }
 
 
-result
+void
 _WebImpl::GetBlockRange(Point& startPoint, Point& endPoint) const
 {
        Eina_Rectangle leftHandle;
@@ -3246,12 +3379,10 @@ _WebImpl::GetBlockRange(Point& startPoint, Point& endPoint) const
                startPoint = __pWebCore->GetRelativeCoordinate(startPoint);
                endPoint = __pWebCore->GetRelativeCoordinate(endPoint);
        }
-
-       return E_SUCCESS;
 }
 
 
-result
+void
 _WebImpl::GetBlockRange(FloatPoint& startPoint, FloatPoint& endPoint) const
 {
        Eina_Rectangle leftHandle;
@@ -3269,8 +3400,6 @@ _WebImpl::GetBlockRange(FloatPoint& startPoint, FloatPoint& endPoint) const
                startPoint = __pWebCore->GetRelativeCoordinate(startPoint);
                endPoint = __pWebCore->GetRelativeCoordinate(endPoint);
        }
-
-       return E_SUCCESS;
 }
 
 
@@ -3352,47 +3481,6 @@ _WebImpl::GetPageSize(void) const
 
 
 void
-_WebImpl::FireWebPageBlockSelectedEvent(void) const
-{
-       result r = E_SUCCESS;
-
-       std::unique_ptr<Point> startPoint(new (std::nothrow) Point());
-       std::unique_ptr<Point> endPoint(new (std::nothrow) Point());
-       std::unique_ptr<FloatPoint> startPointF(new (std::nothrow) FloatPoint());
-       std::unique_ptr<FloatPoint> endPointF(new (std::nothrow) FloatPoint());
-       SysTryReturnVoidResult(NID_WEB_CTRL, startPoint.get() && endPoint.get() && startPointF.get() && endPointF.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-       r = GetBlockRange(*startPoint.get(), *endPoint.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-
-       r = GetBlockRange(*startPointF.get(), *endPointF.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-
-       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED));
-       SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_START, *startPoint.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       startPoint.release();
-
-       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_END, *endPoint.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       endPoint.release();
-
-       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_START_FLOAT, *startPointF.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       startPointF.release();
-
-       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_END_FLOAT, *endPointF.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       endPointF.release();
-
-       r = __pWebEvent->FireAsync(*pEventArg.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       pEventArg.release();
-}
-
-void
 _WebImpl::SetLoadingErrorOccurred(bool arg)
 {
        __isLoadingErrorOccurred = arg;
@@ -3488,6 +3576,7 @@ _WebImpl::LaunchAppControl(const IEventArg& arg)
        }
        case WEB_EVENT_REQUEST_UNKNOWN:
        {
+               operationId = L"http://tizen.org/appcontrol/operation/view";
                break;
        }
        default:
@@ -3772,92 +3861,123 @@ _WebImpl::OnHandleWebUiEvent(const IEventArg& arg)
 
        SysLog(NID_WEB_CTRL, "The current value of event type is %d", pEventArg->GetEventType());
 
-       IWebUiEventListener* pWebUiEventListener = GetUiEventListener();
-       IWebUiEventListenerF* pWebUiEventListenerF = GetUiEventListenerF();
-       SysTryReturnResult(NID_WEB_CTRL, pWebUiEventListener || pWebUiEventListenerF, E_SYSTEM, "A system error has been occurred. Web UI listener was not set or null.");
+       SysTryReturnResult(NID_WEB_CTRL, __pUserUiListener, E_SYSTEM, "A system error has been occurred. Web UI listener was not set or null.");
 
-       if (pWebUiEventListener)
+       switch (pEventArg->GetEventType())
        {
-               switch (pEventArg->GetEventType())
-               {
-               case WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED:
-               {
-                       Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+       case WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED:
+       {
+               Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
 
-                       Point* pStartPoint = const_cast< Point* >(dynamic_cast< const Point* >(pEventArg->GetEventInfo(_WebUiEventArg::BLOCK_START)));
-                       SysTryReturn(NID_WEB_CTRL, pStartPoint, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+               Point* pStartPoint = const_cast< Point* >(dynamic_cast< const Point* >(pEventArg->GetEventInfo(_WebUiEventArg::BLOCK_START)));
+               SysTryReturn(NID_WEB_CTRL, pStartPoint, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
 
-                       Point* pEndPoint = const_cast< Point* >(dynamic_cast< const Point* >(pEventArg->GetEventInfo(_WebUiEventArg::BLOCK_END)));
-                       SysTryReturn(NID_WEB_CTRL, pEndPoint, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+               Point* pEndPoint = const_cast< Point* >(dynamic_cast< const Point* >(pEventArg->GetEventInfo(_WebUiEventArg::BLOCK_END)));
+               SysTryReturn(NID_WEB_CTRL, pEndPoint, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
 
-                       pWebUiEventListener->OnWebPageBlockSelected(*pWeb, *pStartPoint, *pEndPoint);
-                       break;
-               }
+               __pUserUiListener->OnWebPageBlockSelected(*pWeb, *pStartPoint, *pEndPoint);
+               break;
+       }
 
-               case WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED:
-               {
-                       Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+       case WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED:
+       {
+               Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
 
-                       pWebUiEventListener->OnWebPageShowRequested(*pWeb);
-                       break;
-               }
+               __pUserUiListener->OnWebPageShowRequested(*pWeb);
+               break;
+       }
 
-               case WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED:
-               {
-                       Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+       case WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED:
+       {
+               Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
 
-                       pWebUiEventListener->OnWebWindowCloseRequested(*pWeb);
-                       break;
-               }
+               __pUserUiListener->OnWebWindowCloseRequested(*pWeb);
+               break;
+       }
 
-               default:
-               {
-                       SysAssert(false);
-               }
-               }
+       case WEB_EVENT_WEBUIEVENTLISTENER_PREVENT_DEFAULT_TRIGGERED:
+       {
+               Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+
+               Boolean* pTrigger = const_cast< Boolean* >(dynamic_cast< const Boolean* >(pEventArg->GetEventInfo(_WebUiEventArg::PREVENT_DEFAULT)));
+               SysTryReturn(NID_WEB_CTRL, pTrigger, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+               __pUserUiListener->OnWebPreventDefaultTriggered(*pWeb, pTrigger->ToBool());
+               break;
        }
-       if (pWebUiEventListenerF)
+
+       default:
        {
-               switch (pEventArg->GetEventType())
-               {
-               case WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED:
-               {
-                       Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+               SysAssert(false);
+       }
+       }
 
-                       FloatPoint* pStartPoint = const_cast< FloatPoint* >(dynamic_cast< const FloatPoint* >(pEventArg->GetEventInfo(_WebUiEventArg::BLOCK_START_FLOAT)));
-                       SysTryReturn(NID_WEB_CTRL, pStartPoint, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+       return E_SUCCESS;
+}
 
-                       FloatPoint* pEndPoint = const_cast< FloatPoint* >(dynamic_cast< const FloatPoint* >(pEventArg->GetEventInfo(_WebUiEventArg::BLOCK_END_FLOAT)));
-                       SysTryReturn(NID_WEB_CTRL, pEndPoint, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
 
-                       pWebUiEventListenerF->OnWebPageBlockSelected(*pWeb, *pStartPoint, *pEndPoint);
-                       break;
-               }
+result
+_WebImpl::OnHandleWebUiEventF(const IEventArg& arg)
+{
+       result r = E_SUCCESS;
 
-               case WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED:
-               {
-                       Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+       const _WebUiEventArg* pEventArg = dynamic_cast< const _WebUiEventArg* >(&arg);
+       SysTryReturnResult(NID_WEB_CTRL, pEventArg, E_INVALID_ARG, "Invalid argument(s) is used. Type casting failed. argument must be IEventArg type.");
 
-                       pWebUiEventListenerF->OnWebPageShowRequested(*pWeb);
-                       break;
-               }
+       SysLog(NID_WEB_CTRL, "The current value of event type is %d", pEventArg->GetEventType());
 
-               case WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED:
-               {
-                       Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+       SysTryReturnResult(NID_WEB_CTRL, __pUserUiListenerF, E_SYSTEM, "A system error has been occurred. Web UI listener was not set or null.");
 
-                       pWebUiEventListenerF->OnWebWindowCloseRequested(*pWeb);
-                       break;
-               }
+       switch (pEventArg->GetEventType())
+       {
+       case WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED_FLOAT:
+       {
+               Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
 
-               default:
-               {
-                       SysAssert(false);
-               }
-               }
+               FloatPoint* pStartPoint = const_cast< FloatPoint* >(dynamic_cast< const FloatPoint* >(pEventArg->GetEventInfo(_WebUiEventArg::BLOCK_START)));
+               SysTryReturn(NID_WEB_CTRL, pStartPoint, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+               FloatPoint* pEndPoint = const_cast< FloatPoint* >(dynamic_cast< const FloatPoint* >(pEventArg->GetEventInfo(_WebUiEventArg::BLOCK_END)));
+               SysTryReturn(NID_WEB_CTRL, pEndPoint, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+               __pUserUiListenerF->OnWebPageBlockSelected(*pWeb, *pStartPoint, *pEndPoint);
+               break;
        }
 
-       return r;
+       case WEB_EVENT_WEBUIEVENTLISTENER_PAGE_SHOW_REQUESTED_FLOAT:
+       {
+               Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+
+               __pUserUiListenerF->OnWebPageShowRequested(*pWeb);
+               break;
+       }
+
+       case WEB_EVENT_WEBUIEVENTLISTENER_WINDOW_CLOSE_REQUSTED_FLOAT:
+       {
+               Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+
+               __pUserUiListenerF->OnWebWindowCloseRequested(*pWeb);
+               break;
+       }
+
+       case WEB_EVENT_WEBUIEVENTLISTENER_PREVENT_DEFAULT_TRIGGERED_FLOAT:
+       {
+               Web* pWeb = dynamic_cast< Web* >(&(this->GetPublic()));
+
+               Boolean* pTrigger = const_cast< Boolean* >(dynamic_cast< const Boolean* >(pEventArg->GetEventInfo(_WebUiEventArg::PREVENT_DEFAULT)));
+               SysTryReturn(NID_WEB_CTRL, pTrigger, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+               __pUserUiListenerF->OnWebPreventDefaultTriggered(*pWeb, pTrigger->ToBool());
+               break;
+       }
+
+       default:
+       {
+               SysAssert(false);
+       }
+       }
+
+       return E_SUCCESS;
 }
 
 
index adaa1d0..280169d 100755 (executable)
@@ -178,21 +178,23 @@ public:
 
        result SetBlockSelectionPosition(const Tizen::Graphics::FloatPoint& startPoint);
 
-       result ReleaseBlock(void);
+       void ReleaseBlock(void);
 
-       result GetBlockRange(Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) const;
+       void  GetBlockRange(Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint) const;
 
-       result GetBlockRange(Tizen::Graphics::FloatPoint& startPoint, Tizen::Graphics::FloatPoint& endPoint) const;
+       void  GetBlockRange(Tizen::Graphics::FloatPoint& startPoint, Tizen::Graphics::FloatPoint& endPoint) const;
 
        void FireWebPageBlockSelectedEvent(void) const;
 
+       void FireWebPageBlockSelectedEventF(void) const;
+
        Tizen::Base::String GetTextFromBlock(void) const;
 
        Tizen::Base::String* EvaluateJavascriptN(const Tizen::Base::String& scriptCode) const;
 
        bool IsPrivateBrowsingEnabled(void) const;
 
-       result SetPrivateBrowsingEnabled(bool enable);
+       void SetPrivateBrowsingEnabled(bool enable);
 
        void ClearHistory(void);
 
@@ -263,7 +265,7 @@ public:
 
        result RemoveJavaScriptBridge(const IJavaScriptBridge& jsBridge);
 
-       result SetScrollEnabled(bool enable);
+       void SetScrollEnabled(bool enable);
 
        bool IsScrollEnabled(void) const;
 
@@ -383,6 +385,7 @@ private:
        result OnHandleLoadingEvent(const Tizen::Base::Runtime::IEventArg& arg);
        result OnHandleWebDownloadEvent(const Tizen::Base::Runtime::IEventArg& arg);
        result OnHandleWebUiEvent(const Tizen::Base::Runtime::IEventArg& arg);
+       result OnHandleWebUiEventF(const Tizen::Base::Runtime::IEventArg& arg);
        result OnHandleTextSearchEvent(const Tizen::Base::Runtime::IEventArg& arg);
 
 private: