+
+result
+_WebImpl::ShowUserConfirmPopup(_UserConfirmMode userConfirmMode, void* pPolicy, String msg)
+{
+ result r = E_SUCCESS;
+
+ std::unique_ptr<_UserConfirmPopup> pUserConfirmPopup(new (std::nothrow) _UserConfirmPopup());
+ SysTryReturnResult(NID_WEB_CTRL, pUserConfirmPopup.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
+
+ r = pUserConfirmPopup->Construct(userConfirmMode, pPolicy, this, true, msg);
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+
+ int modalResult = 0;
+
+ switch(userConfirmMode)
+ {
+ case USER_CONTENT_HANDLER:
+ {
+ __pContentHandlerConfirmPopup = std::move(pUserConfirmPopup);
+
+ r = __pContentHandlerConfirmPopup->ShowAndWait(modalResult);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, __pContentHandlerConfirmPopup.reset(), r, "[%s] Propagating.", GetErrorMessage(r));
+
+ __pContentHandlerConfirmPopup.reset();
+
+ ewk_view_resume(__pWebCore->GetWebNativeNode());
+
+ break;
+ }
+ case USER_PROTOCOL_HANDLER:
+ {
+ __pProtocolHandlerConfirmPopup = std::move(pUserConfirmPopup);
+
+ r = __pProtocolHandlerConfirmPopup->ShowAndWait(modalResult);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, __pProtocolHandlerConfirmPopup.reset(), r, "[%s] Propagating.", GetErrorMessage(r));
+
+ __pProtocolHandlerConfirmPopup.reset();
+
+ ewk_view_resume(__pWebCore->GetWebNativeNode());
+
+ break;
+ }
+ case USER_CONFIRM_APP_CACHE:
+ {
+ __pAppCacheConfirmPopup = std::move(pUserConfirmPopup);
+
+ r = __pAppCacheConfirmPopup->ShowAndWait(modalResult);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, __pAppCacheConfirmPopup.reset(), r, "[%s] Propagating.", GetErrorMessage(r));
+
+ __pAppCacheConfirmPopup.reset();
+
+ ewk_view_resume(__pWebCore->GetWebNativeNode());
+
+ break;
+ }
+ case USER_CONFIRM_DB_QUOTA_EXCEDED:
+ {
+ __pDbQuotaConfirmPopup = std::move(pUserConfirmPopup);
+
+ r = __pDbQuotaConfirmPopup->ShowAndWait(modalResult);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, __pDbQuotaConfirmPopup.reset(), r, "[%s] Propagating.", GetErrorMessage(r));
+
+ __pDbQuotaConfirmPopup.reset();
+
+ ewk_view_resume(__pWebCore->GetWebNativeNode());
+
+ break;
+ }
+ case USER_CONFIRM_LOCAL_FS_QUOTA_EXCEDED:
+ {
+ __pLocalFsQuotaConfirmPopup = std::move(pUserConfirmPopup);
+
+ r = __pLocalFsQuotaConfirmPopup->ShowAndWait(modalResult);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, __pLocalFsQuotaConfirmPopup.reset(), r, "[%s] Propagating.", GetErrorMessage(r));
+
+ __pLocalFsQuotaConfirmPopup.reset();
+
+ ewk_view_resume(__pWebCore->GetWebNativeNode());
+
+ break;
+ }
+ case USER_CONFIRM_INDEXED_DB_QUOTA_EXCEDED:
+ {
+ __pIndexedDbQuotaConfirmPopup = std::move(pUserConfirmPopup);
+
+ r = __pIndexedDbQuotaConfirmPopup->ShowAndWait(modalResult);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, __pIndexedDbQuotaConfirmPopup.reset(), r, "[%s] Propagating.", GetErrorMessage(r));
+
+ __pIndexedDbQuotaConfirmPopup.reset();
+
+ ewk_view_resume(__pWebCore->GetWebNativeNode());
+
+ break;
+ }
+ case USER_SCRIPT_CONFIRM:
+ {
+ __pScriptConfirmPopup = std::move(pUserConfirmPopup);
+
+ r = __pScriptConfirmPopup->ShowAndWait(modalResult);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, __pScriptConfirmPopup.reset(), r, "[%s] Propagating.", GetErrorMessage(r));
+
+ __pScriptConfirmPopup.reset();
+
+ ewk_view_resume(__pWebCore->GetWebNativeNode());
+
+ break;
+ }
+ default:
+ break;
+ }
+CATCH:
+ return r;
+}
+
+