vc_webview_->vc_webview_set_view(new_view->evas_object());
}
-void WebApplication::RemoveWebViewFromStack(WebView* view) {
+void WebApplication::RemoveWebViewFromStack(WebView* view, bool is_closed_webview_called) {
if (view_stack_.size() == 0)
return;
vc_webview_->vc_webview_set_view(view_stack_.front()->evas_object());
}
- // Delete after the callback context(for ewk view) was not used
- ecore_idler_add([](void* view) {
- WebView* obj = static_cast<WebView*>(view);
- delete obj;
- return EINA_FALSE;
- },
- view);
+ if (is_closed_webview_called)
+ delete view;
+ else {
+ // Delete after the callback context(for ewk view) was not used
+ ecore_idler_add([](void* view) {
+ WebView* obj = static_cast<WebView*>(view);
+ delete obj;
+ return EINA_FALSE;
+ },
+ view);
+ }
}
Eina_Bool WebApplication::CheckPluginSession(void* user_data)
void WebApplication::OnClosedWebView(WebView* view) {
// Reply to javascript dialog for preventing freeze issue.
view->ReplyToJavascriptDialog();
- RemoveWebViewFromStack(view);
+ RemoveWebViewFromStack(view, true);
#if defined(TIZEN_PRODUCT_TV)
LOGGER(DEBUG) << "plugin_session_count : " <<
LOGGER(DEBUG) << "Terminate";
Terminate();
} else {
- RemoveWebViewFromStack(view_stack_.front());
+ RemoveWebViewFromStack(view_stack_.front(), false);
}
}
}
LOGGER(DEBUG) << "Terminate";
Terminate();
} else {
- RemoveWebViewFromStack(view_stack_.front());
+ RemoveWebViewFromStack(view_stack_.front(), false);
}
}
void LaunchInspector(common::AppControl* appcontrol);
void SetupWebView(WebView* view);
void SetupWebViewCompatibilitySettings(WebView* view);
- void RemoveWebViewFromStack(WebView* view);
+ void RemoveWebViewFromStack(WebView* view, bool is_closed_webview_called);
void SetupTizenVersion();
bool tizenWebKitCompatibilityEnabled() const;