fix crash and bug
authorSeongjun Yim <se201.yim@samsung.com>
Wed, 8 May 2013 06:15:17 +0000 (15:15 +0900)
committerSeongjun Yim <se201.yim@samsung.com>
Wed, 8 May 2013 06:29:47 +0000 (15:29 +0900)
Change-Id: Ia0232fc8e458473d5abab146ee24a927b76a970d
Signed-off-by: Seongjun Yim <se201.yim@samsung.com>
src/controls/FWebCtrl_Web.cpp
src/controls/FWebCtrl_WebImpl.cpp
src/controls/FWebCtrl_WebSettingImpl.cpp

index 5e628f9..936b158 100755 (executable)
@@ -227,10 +227,11 @@ _Web::CreateWebkitEvasObject(void)
 
        __pEflWebkit = std::move(pEflWebkit);
 
-       evas_object_smart_callback_add(__pEflWebkit->GetWebEvasObject(), "edge,left", OnEdgeLeft, this);
-       evas_object_smart_callback_add(__pEflWebkit->GetWebEvasObject(), "edge,right", OnEdgeRight, this);
-       evas_object_smart_callback_add(__pEflWebkit->GetWebEvasObject(), "edge,top", OnEdgeTop, this);
-       evas_object_smart_callback_add(__pEflWebkit->GetWebEvasObject(), "edge,bottom", OnEdgeBottom, this);
+       Evas_Object* pView = GetWebNativeNode();
+       evas_object_smart_callback_add(pView, "edge,left", OnEdgeLeft, this);
+       evas_object_smart_callback_add(pView, "edge,right", OnEdgeRight, this);
+       evas_object_smart_callback_add(pView, "edge,top", OnEdgeTop, this);
+       evas_object_smart_callback_add(pView, "edge,bottom", OnEdgeBottom, this);
 
        return E_SUCCESS;
 }
@@ -337,12 +338,13 @@ _Web::RemoveGestureListener(void)
                RemoveGestureDetector(*__pGesturePinch);
        }
 
-       if (__pEflWebkit->GetWebEvasObject())
+       Evas_Object* pView = GetWebNativeNode();
+       if (pView)
        {
-               evas_object_smart_callback_del(__pEflWebkit->GetWebEvasObject(), "edge,left", OnEdgeLeft);
-               evas_object_smart_callback_del(__pEflWebkit->GetWebEvasObject(), "edge,right", OnEdgeRight);
-               evas_object_smart_callback_del(__pEflWebkit->GetWebEvasObject(), "edge,top", OnEdgeTop);
-               evas_object_smart_callback_del(__pEflWebkit->GetWebEvasObject(), "edge,bottom", OnEdgeBottom);
+               evas_object_smart_callback_del(pView, "edge,left", OnEdgeLeft);
+               evas_object_smart_callback_del(pView, "edge,right", OnEdgeRight);
+               evas_object_smart_callback_del(pView, "edge,top", OnEdgeTop);
+               evas_object_smart_callback_del(pView, "edge,bottom", OnEdgeBottom);
        }
 }
 
index 5d941af..8749bdf 100755 (executable)
@@ -2135,15 +2135,18 @@ _WebImpl::InitializeSetting(void)
 {
        result r = E_SUCCESS;
 
-       r = SetSetting(*__pWebCore->GetSetting());
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-
-       _WebSettingImpl* pWebSettingImpl = _WebSettingImpl::GetInstance(__pWebCore->GetSetting());
+       WebSetting* pWebSetting = __pWebCore->GetSetting();
+       _WebSettingImpl* pWebSettingImpl = _WebSettingImpl::GetInstance(pWebSetting);
 
        SetCookieEnabled(pWebSettingImpl->IsCookieEnabled());
        SetPrivateBrowsingEnabled(pWebSettingImpl->IsPrivateBrowsingEnabled());
        SetZoomLevel(pWebSettingImpl->GetZoomLevel());
 
+       pWebSettingImpl->SetUserAgent(ewk_view_user_agent_get(__pWebCore->GetWebNativeNode()));
+
+       r = SetSetting(*pWebSetting);
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+
        SetEventListenerCallback();
 
        return E_SUCCESS;
index 305fa9f..75cfa14 100755 (executable)
@@ -41,7 +41,6 @@ namespace Tizen { namespace Web { namespace Controls
 static const wchar_t* DEFAULT_ENCODING_MODE = L"UTF-8";
 static const int DEFAULT_FONT_SIZE = 17;
 static const float DEFAULT_ZOOM_LEVEL = 2.0f;
-static const wchar_t* DEFAULT_USER_AGENT = L"Mozilla/5.0 (Linux; U; Tizen 2.0; en-us) AppleWebKit/537.1 (KHTML, like Gecko) Version/2.0 Mobile";
 
 
 _WebSettingImpl::_WebSettingImpl(void)
@@ -56,23 +55,13 @@ _WebSettingImpl::_WebSettingImpl(void)
        , __zoomLevel(DEFAULT_ZOOM_LEVEL)
        , __inputStyle(INPUT_STYLE_FULLSCREEN)
        , __certificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_USER_CONFIRM)
+       , __userAgent(L"")
        , __autoFittingEnabled(true)
        , __javaScriptPopupEnabled(true)
        , __geolocationEnabled(true)
        , __autoFormDataEnabled(true)
        , __autoLoginFormEnabled(true)
 {
-       char* pUserAgent = vconf_get_str(VCONFKEY_BROWSER_USER_AGENT);
-
-       if(pUserAgent)
-       {
-               __userAgent = pUserAgent;
-               free(pUserAgent);
-       }
-       else
-       {
-               __userAgent = DEFAULT_USER_AGENT;
-       }
 }