From 7a2cd9a3fea23e10af9eaec3e5d1907ec8a6118b Mon Sep 17 00:00:00 2001 From: Jihye Kang Date: Fri, 4 Oct 2013 17:15:26 +0900 Subject: [PATCH] Avoid force close on OpenPanel [Title] Avoid force close on OpenPanel [Issue#] N_SE-53655 [Problem] Internet has closed unexpectedly due to upload giant image [Cause] removed view is referenced [Solution] Reply error on service launch rather than return without reply error and clear member varialbe on destructing openPanel for avoiding illegal reference of view. Change-Id: Iaf972c89f0e8732208f2aa42a4779ae2634b0848 --- Source/WebKit2/UIProcess/API/efl/tizen/OpenPanel.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Source/WebKit2/UIProcess/API/efl/tizen/OpenPanel.cpp b/Source/WebKit2/UIProcess/API/efl/tizen/OpenPanel.cpp index 4f01a75..acae696 100755 --- a/Source/WebKit2/UIProcess/API/efl/tizen/OpenPanel.cpp +++ b/Source/WebKit2/UIProcess/API/efl/tizen/OpenPanel.cpp @@ -35,6 +35,7 @@ OpenPanel::OpenPanel(Evas_Object* ewkView) OpenPanel::~OpenPanel() { + m_ewkView = 0; close(); } @@ -122,13 +123,19 @@ static void _cameraResultCb(service_h request, service_h reply, service_result_e OpenPanel* openPanel = static_cast(data); TIZEN_LOGI("result(%d)", result); + if (!openPanel->ewkView()) { + TIZEN_LOGE("view does not exist"); + return; + } if (result == SERVICE_RESULT_SUCCEEDED) { char** resultFileNames = 0; int length = 0; int ret = service_get_extra_data_array(reply, SERVICE_DATA_SELECTED, &resultFileNames, &length); - if (ret != SERVICE_ERROR_NONE) + if (ret != SERVICE_ERROR_NONE) { + ewk_view_open_panel_reply(openPanel->ewkView(), 0, false); return; + } if (length) { Eina_List* list = 0; @@ -145,12 +152,10 @@ static void _cameraResultCb(service_h request, service_h reply, service_result_e list = eina_list_append(list, fileName); } ewk_view_open_panel_reply(openPanel->ewkView(), list, true); - } else { + } else ewk_view_open_panel_reply(openPanel->ewkView(), 0, false); - } - } else { + } else ewk_view_open_panel_reply(openPanel->ewkView(), 0, false); - } } bool OpenPanel::_capturePicture() -- 2.7.4