fix crash for jira issues
[framework/osp/web.git] / src / controls / FWebCtrl_Web.cpp
index 43d220b..1a3eca8 100755 (executable)
@@ -363,7 +363,7 @@ _Web::GetRelativeCoordinate(FloatPoint absolutePoint)
 Evas_Object*
 _Web::GetWebNativeNode(void)
 {
-       SysTryReturn(NID_WEB_CTRL, __pEflWebkit, null, E_INVALID_STATE, "[%s] Native node is in an invalid state.", GetErrorMessage(E_INVALID_STATE));
+       SysTryReturn(NID_WEB_CTRL, __pEflWebkit.get(), null, E_INVALID_STATE, "[%s] Native node is in an invalid state.", GetErrorMessage(E_INVALID_STATE));
 
        return __pEflWebkit->GetWebEvasObject();
 }
@@ -386,7 +386,7 @@ _Web::GetWebSettingImpl(void) const
 result
 _Web::OnAttaching(const _Control* pParent)
 {
-       if (__pEflWebkit)
+       if (__pEflWebkit.get())
        {
                evas_object_show(__pEflWebkit->GetWebEvasObject());
                evas_object_focus_set(__pEflWebkit->GetWebEvasObject(), EINA_TRUE);
@@ -404,7 +404,7 @@ _Web::OnBoundsChanging(const Rectangle& bounds)
        _ICoordinateSystemTransformer* pXformer = _CoordinateSystem::GetInstance()->GetTransformer();
        SysTryReturnResult(NID_WEB_CTRL, pXformer, E_SYSTEM, "[%s] A system error has been occurred. Failed to get coordinate transformer.", GetErrorMessage(E_SYSTEM));
 
-       if (__pEflWebkit)
+       if (__pEflWebkit.get())
        {
                evas_object_move(__pEflWebkit->GetWebEvasObject(), pXformer->TransformHorizontal(absoluteBounds.x - webBounds.x + bounds.x), pXformer->TransformVertical(absoluteBounds.y - webBounds.y + bounds.y));
                evas_object_resize(__pEflWebkit->GetWebEvasObject(), pXformer->TransformHorizontal(bounds.width), pXformer->TransformVertical(bounds.height));
@@ -448,9 +448,12 @@ _Web::ChangeGesture(_WebGestureType type)
 bool
 _Web::OnTouchPressed(const _Control& source, const _TouchInfo& touchInfo)
 {
-       SendTouchEventForJavaScript(touchInfo);
+       if (__pEflWebkit.get())
+       {
+               SendTouchEventForJavaScript(touchInfo);
 
-       __pGestureHandler->OnTouchPressed(source, touchInfo);
+               __pGestureHandler->OnTouchPressed(source, touchInfo);
+       }
 
        return true;
 }
@@ -459,9 +462,12 @@ _Web::OnTouchPressed(const _Control& source, const _TouchInfo& touchInfo)
 bool
 _Web::OnTouchMoved(const _Control& source, const _TouchInfo& touchInfo)
 {
-       SendTouchEventForJavaScript(touchInfo);
+       if (__pEflWebkit.get())
+       {
+               SendTouchEventForJavaScript(touchInfo);
 
-       __pGestureHandler->OnTouchMoved(source, touchInfo);
+               __pGestureHandler->OnTouchMoved(source, touchInfo);
+       }
 
        return true;
 }
@@ -470,16 +476,18 @@ _Web::OnTouchMoved(const _Control& source, const _TouchInfo& touchInfo)
 bool
 _Web::OnTouchReleased(const _Control& source, const _TouchInfo& touchInfo)
 {
-       SendTouchEventForJavaScript(touchInfo);
+       if (__pEflWebkit.get())
+       {
+               SendTouchEventForJavaScript(touchInfo);
 
-       __pGestureHandler->OnTouchReleased(source, touchInfo);
+               __pGestureHandler->OnTouchReleased(source, touchInfo);
 
-       _WebImpl* pWebImpl = reinterpret_cast<_WebImpl*>(evas_object_data_get(GetWebNativeNode(), WEB_CTRL));
-       SysAssertf(pWebImpl, "Failed to get Impl");
+               _WebImpl* pWebImpl = reinterpret_cast<_WebImpl*>(evas_object_data_get(GetWebNativeNode(), WEB_CTRL));
 
-       if (pWebImpl->GetLoadingListener() && pWebImpl->GetTextFromBlock().GetLength() > 0)
-       {
-               pWebImpl->FireWebPageBlockSelectedEvent();
+               if (pWebImpl && pWebImpl->GetLoadingListener() && pWebImpl->GetTextFromBlock().GetLength() > 0)
+               {
+                       pWebImpl->FireWebPageBlockSelectedEvent();
+               }
        }
 
        SetFocused();
@@ -490,9 +498,12 @@ _Web::OnTouchReleased(const _Control& source, const _TouchInfo& touchInfo)
 bool
 _Web::OnTouchCanceled(const _Control& source, const _TouchInfo& touchInfo)
 {
-       SendTouchEventForJavaScript(touchInfo);
+       if (__pEflWebkit.get())
+       {
+               SendTouchEventForJavaScript(touchInfo);
 
-       __pGestureHandler->OnTouchCanceled(source, touchInfo);
+               __pGestureHandler->OnTouchCanceled(source, touchInfo);
+       }
 
        return true;
 }
@@ -501,7 +512,7 @@ _Web::OnTouchCanceled(const _Control& source, const _TouchInfo& touchInfo)
 bool
 _Web::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
 {
-       if (__pWebSettingImpl->IsScrollEnabled())
+       if (__pEflWebkit.get() && __pWebSettingImpl->IsScrollEnabled())
        {
                ChangeGesture(WEB_GESTURE_TYPE_FLICK);
                static_cast< _FlickGestureState* >(__pGestureHandler)->OnFlickGestureDetected(gesture);
@@ -521,10 +532,13 @@ _Web::OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture)
 bool
 _Web::OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture)
 {
-       _TapGestureState* pTapGestureHandler = dynamic_cast< _TapGestureState* >(__pGestureHandler);
-       if (pTapGestureHandler)
+       if (__pEflWebkit.get())
        {
-               pTapGestureHandler->OnLongPressGestureDetected(gesture);
+               _TapGestureState* pTapGestureHandler = dynamic_cast< _TapGestureState* >(__pGestureHandler);
+               if (pTapGestureHandler)
+               {
+                       pTapGestureHandler->OnLongPressGestureDetected(gesture);
+               }
        }
 
        return true;
@@ -541,7 +555,10 @@ _Web::OnLongPressGestureCanceled(_TouchLongPressGestureDetector& gesture)
 bool
 _Web::OnTapGestureDetected(_TouchTapGestureDetector& gesture)
 {
-       ChangeGesture(WEB_GESTURE_TYPE_DOUBLE_TAP);
+       if (__pEflWebkit.get())
+       {
+               ChangeGesture(WEB_GESTURE_TYPE_DOUBLE_TAP);
+       }
 
        return true;
 }