#include <popup-runner/PopupInvoker.h>
namespace { //Anonymous
-
-const wchar_t* BACKGROUND_ENABLED = L"background_enabled" ;
-
const std::string ACCESS_DENIED = _("IDS_BR_POP_ACCESS_DENIED");
const std::string ALREADY_RUNNING = _("IDS_BR_POP_ALREADY_RUNNING");
const std::string INVALID_LOCALE = _("IDS_IM_POP_INVALID_WIDGET_LOCALE");
change.commit();
}
-void RunnableWidgetObject::Hide() {
+void RunnableWidgetObject::Hide()
+{
State::StateChange change = m_guardstate->allowHide();
m_view->hideWidget();
change.commit();
}
-void RunnableWidgetObject::Suspend() {
+void RunnableWidgetObject::Suspend()
+{
LogDebug("Suspending widget");
State::StateChange change = m_guardstate->allowSuspend();
- Assert(m_widgetModel);
-
- bool suspendWebkit = true;
-
- if( m_widgetModel->SettingList.Get().getBackgroundSupport()
- == BackgroundSupport_Enable ) {
- //skip suspendWidget
- LogDebug("Background enabled, skipping suspend");
- suspendWebkit = false;
- }
-#ifndef DEPRECATED_SETTING_STRING
- else {
- WrtDB::WidgetDAOReadOnly dao(m_widgetModel->TizenId);
- WrtDB::PropertyDAOReadOnly::WidgetPropertyValue bgEnableValue =
- dao.getPropertyValue(DPL::String(BACKGROUND_ENABLED));
-
- if(!bgEnableValue.IsNull() && !bgEnableValue->compare(L"true")) {
- //skip suspendWidget
- LogDebug("Background enabled, skipping suspend");
- suspendWebkit = false;
- }
- }
-#endif
-
- m_view->changeViewVisibility(false);
- if(suspendWebkit) //if widget has background page suspending wk will be skipped
- {
- m_view->suspendWidget();
- }
+ m_view->suspendWidget();
change.commit();
}
m_view->reloadStartPage();
}
-Evas_Object* RunnableWidgetObject::GetCurrentWebview() {
+Evas_Object* RunnableWidgetObject::GetCurrentWebview()
+{
State::StateChange change = m_guardstate->allowGetCurrentWebview();
Evas_Object* cww = m_view->getCurrentWebview();
change.commit();
}
-void RunnableWidgetObject::Backward() {
+void RunnableWidgetObject::Backward()
+{
State::StateChange change = m_guardstate->allowBackward();
m_view->backward();
#include <appcore-common.h>
#include <pcrecpp.h>
#include <vconf.h>
+#include <sysman.h>
#include <widget_model.h>
#include <dpl/wrt-dao-ro/widget_dao_read_only.h>
#include <dpl/wrt-dao-ro/vconf_config.h>
"Certification Info";
const char * const CERTIFICATE_CONFIRM_REQUEST_ASK_BODY =
"This site's security certificate is not trusted! Do you acess this site?";
+
+const wchar_t* BACKGROUND_ENABLED = L"background_enabled" ;
+
} // anonymous namespace
std::map<const std::string, const Evas_Smart_Cb> ViewLogic::m_ewkCallbacksMap =
m_model(0),
m_cbs(new WRT::UserDelegates),
m_isBackgroundReload(false),
+ m_isBackgroundSupport(false),
m_appsSupport(new ViewModule::AppsSupport()),
m_vibrationSupport(new ViewModule::VibrationSupport()),
m_attachedToCustomHandlerDao(false)
m_ewkViewList.clear();
}
-void ViewLogic::changeViewVisibility(bool isVisible)
-{
- Evas_Object* wkView = m_currentEwkView;
- if (!wkView)
- return;
-
- if (isVisible) {
- ewk_view_page_visibility_state_set(wkView,
- EWK_PAGE_VISIBILITY_STATE_VISIBLE,
- EINA_FALSE);
- ewk_view_visibility_set(wkView, EINA_TRUE);
- } else {
- ewk_view_page_visibility_state_set(wkView,
- EWK_PAGE_VISIBILITY_STATE_HIDDEN,
- EINA_FALSE);
- ewk_view_visibility_set(wkView, EINA_FALSE);
- }
-}
-
void ViewLogic::suspendWidget()
{
LogInfo("Pausing widget");
if (!m_currentEwkView) {
LogWarning("Cannot suspend widget without view");
} else {
- suspendWebkit(m_currentEwkView);
+ setEwkViewInvisible(m_currentEwkView);
+ if (!m_isBackgroundSupport) {
+ suspendWebkit(m_currentEwkView);
+ }
}
evas_object_focus_set(m_currentEwkView, EINA_FALSE);
PluginModuleSupport::resume(m_ewkContext);
if (m_currentEwkView) {
- resumeWebkit(m_currentEwkView);
+ setEwkViewVisible(m_currentEwkView);
+ if (!m_isBackgroundSupport) {
+ resumeWebkit(m_currentEwkView);
+ }
}
/* window system team recomend removing this win_raise code. */
void ViewLogic::initializeSupport()
{
+ // background support
+ if( m_model->SettingList.Get().getBackgroundSupport()
+ == BackgroundSupport_Enable ) {
+ LogDebug("Background support enabled, set process active");
+ pid_t pid = getpid();
+ sysman_inform_active(pid);
+ m_isBackgroundSupport = true;
+ }
+#ifndef DEPRECATED_SETTING_STRING
+ else {
+ WrtDB::WidgetDAOReadOnly dao(m_model->TizenId);
+ WrtDB::PropertyDAOReadOnly::WidgetPropertyValue bgEnableValue =
+ dao.getPropertyValue(DPL::String(BACKGROUND_ENABLED));
+
+ if(!bgEnableValue.IsNull() && !bgEnableValue->compare(L"true")) {
+ //skip suspendWidget
+ LogDebug("Background support enabled, set process active");
+ pid_t pid = getpid();
+ sysman_inform_active(pid);
+ m_isBackgroundSupport = true;
+ }
+ }
+#endif
+
// set local stroage database path
WrtDB::WidgetDAOReadOnly dao(m_model->TizenId);
ewk_context_web_storage_path_set(m_ewkContext,
return;
}
+void ViewLogic::setEwkViewInvisible(Evas_Object *wkView)
+{
+ LogInfo("setEwkViewInvisible called");
+ Assert(wkView);
+
+ ewk_view_page_visibility_state_set(wkView,
+ EWK_PAGE_VISIBILITY_STATE_HIDDEN,
+ EINA_FALSE);
+ ewk_view_visibility_set(wkView, EINA_FALSE);
+}
+
+void ViewLogic::setEwkViewVisible(Evas_Object *wkView)
+{
+ LogInfo("setEwkViewVisible called");
+ Assert(wkView);
+
+ ewk_view_page_visibility_state_set(wkView,
+ EWK_PAGE_VISIBILITY_STATE_VISIBLE,
+ EINA_FALSE);
+ ewk_view_visibility_set(wkView, EINA_TRUE);
+}
+
void ViewLogic::resumeWebkit(Evas_Object *wkView)
{
LogDebug("resumeWebkit");
// ewk_view_enable_render();
// ewk_view_reduce_plugins_frame_rate(false);
ewk_view_resume(wkView);
- ewk_view_visibility_set(wkView, EINA_TRUE);
- ewk_view_page_visibility_state_set(wkView,
- EWK_PAGE_VISIBILITY_STATE_VISIBLE,
- EINA_FALSE);
+
return;
}