From: Seongjun Yim Date: Mon, 4 Nov 2013 15:44:02 +0000 (+0900) Subject: fix crash issue for authentication popup X-Git-Tag: submit/tizen_2.2/20131107.062229^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f08d75d7e6eaa488775c0188d0a410f771a25ffa;p=framework%2Fosp%2Fweb.git fix crash issue for authentication popup Change-Id: Ib41c2429a74db99758a68cc2ca26fcd1bd935fb9 Signed-off-by: Seongjun Yim --- diff --git a/src/controls/FWebCtrl_AuthConfirmPopup.cpp b/src/controls/FWebCtrl_AuthConfirmPopup.cpp index 756dc92..eeaa139 100755 --- a/src/controls/FWebCtrl_AuthConfirmPopup.cpp +++ b/src/controls/FWebCtrl_AuthConfirmPopup.cpp @@ -191,6 +191,9 @@ _AuthConfirmPopup::OnActionPerformed(const Control& source, int actionId) { result r = E_SUCCESS; + r = HidePopup(); + SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r)); + switch (actionId) { case ID_BUTTON_AUTH_PROCESS: @@ -204,9 +207,6 @@ _AuthConfirmPopup::OnActionPerformed(const Control& source, int actionId) default: break; } - - r = HidePopup(); - SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r)); } bool diff --git a/src/controls/FWebCtrl_WebImpl.cpp b/src/controls/FWebCtrl_WebImpl.cpp index 29910e3..4e0d109 100755 --- a/src/controls/FWebCtrl_WebImpl.cpp +++ b/src/controls/FWebCtrl_WebImpl.cpp @@ -4804,20 +4804,13 @@ _WebImpl::ShowAuthenticationPopup(const String& host, const String& realm, Authe r = pAuthPopup->Construct(host, realm, pAuthChallenge); SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); + __pAuthPopup.reset(); __pAuthPopup = std::move(pAuthPopup); - int modalResult = 0; - - r = __pAuthPopup->ShowAndWait(modalResult); - SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - -CATCH: - if (__pAuthPopup) - { - __pAuthPopup.reset(); - } + r = __pAuthPopup->ShowPopup(); + SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); - return r; + return E_SUCCESS; } @@ -5278,12 +5271,26 @@ _WebImpl::OnAncestorVisibleStateChanged(const _Control& control) if (IsVisible() == true) { pWebManager->SetActiveWeb(this); - ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_VISIBLE, false); + if (IsLoading()) + { +// ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_VISIBLE, true); + } + else + { +// ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_VISIBLE, false); + } } else { pWebManager->RemoveActiveWeb(this); - ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_HIDDEN, false); + if (IsLoading()) + { +// ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_HIDDEN, true); + } + else + { +// ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_HIDDEN, false); + } } }