window_->SetContent(new_view->evas_object());
}
-void WebApplication::OnClosedWebView(WebView* view) {
+void WebApplication::RemoveWebViewFromStack(WebView* view) {
if (view_stack_.size() == 0) return;
WebView* current = view_stack_.front();
view);
}
+void WebApplication::OnClosedWebView(WebView* view) {
+ RemoveWebViewFromStack(view);
+}
+
void WebApplication::OnReceivedWrtMessage(WebView* /*view*/,
Ewk_IPC_Wrt_Message_Data* msg) {
Eina_Stringshare* msg_id = ewk_ipc_wrt_message_data_id_get(msg);
// NOTE: This code is added to enable back-key on remote URL
if (!common::utils::StartsWith(view->GetUrl(), kFileScheme)) {
LOGGER(DEBUG) << "Back to previous page for remote URL";
- view->Backward();
+ if (!view->Backward()) {
+ RemoveWebViewFromStack(view_stack_.front());
+ }
return;
}
// If the 'backbutton_presence' is true, WebView should be navigated back.
if (app_data_->setting_info() &&
app_data_->setting_info()->backbutton_presence()) {
- view->Backward();
+ if (!view->Backward()) {
+ RemoveWebViewFromStack(view_stack_.front());
+ }
}
} else if (enabled && kKeyNameMenu == keyname) {
view->EvalJavascript(kMenuKeyEventScript);
ewk_view_reload(ewk_view_);
}
-void WebViewImpl::Backward() {
- ewk_view_back(ewk_view_);
+bool WebViewImpl::Backward() {
+ if (ewk_view_back_possible(ewk_view_)) {
+ ewk_view_back(ewk_view_);
+ return EINA_TRUE;
+ }
+ return EINA_FALSE;
}
void WebViewImpl::SetVisibility(bool show) {
extern "C" void DynamicUrlParsing(
std::string* old_url, std::string* new_url, const char* /*tizen_id*/) {
- SCOPE_PROFILE();
-
auto res_manager =
runtime::BundleGlobalData::GetInstance()->resource_manager();
if (res_manager == NULL) {