InitConsoleMessageCallback();
InitCustomContextMenuCallback();
InitRotationCallback();
+ InitWindowCreateCallback();
+
+ // TODO(sngn.lee): "request,certificate,confirm" certification popup
+ // TODO(sngn.lee): ewk_view_notification_permission_callback_set
+ // TODO(sngn.lee): "notification,show"
+ // TODO(sngn.lee): "notification,cancel"
+ // TODO(sngn.lee): "create,window"
+ // TODO(sngn.lee): "close,window"
+ // TODO(sngn.lee): "fullscreen,enterfullscreen"
+ // TODO(sngn.lee): "fullscreen,exitfullscreen"
+ // TODO(sngn.lee): "protocolhandler,registration,requested"
+ // custom protocol handler
+ // TODO(sngn.lee): ewk_view_geolocation_permission_callback_set
+ // TODO(sngn.lee): ewk_view_user_media_permission_callback_set
// Show webview
evas_object_show(ewk_view_);
}
void WebViewImpl::InitQuotaExceededCallback() {
+ // TODO(sngn.lee): Need callback interface - OnQutaExceed
+ // check http://tizen.org/privilege/unlimitedstorage
+
// callback for database quota exceeded
auto database_exceeded_callback = [](Evas_Object* view,
Ewk_Security_Origin* origin,
std::placeholders::_1));
}
+void WebViewImpl::InitWindowCreateCallback() {
+ auto create_callback = [](void* user_data,
+ Evas_Object*,
+ void* event_info) {
+ WebViewImpl* self = static_cast<WebViewImpl*>(user_data);
+ if (!self->listener_) {
+ return;
+ }
+ WebView* new_view = new WebView(self->window_, self->context_);
+ self->listener_->OnCreatedNewWebView(self->view_, new_view);
+ };
+
+ auto close_callback = [](void* user_data,
+ Evas_Object*,
+ void*) {
+ WebViewImpl* self = static_cast<WebViewImpl*>(user_data);
+ if (!self->listener_) {
+ return;
+ }
+ self->listener_->OnClosedWebView(self->view_);
+ };
+ evas_object_smart_callback_add(ewk_view_,
+ "create,window",
+ create_callback,
+ this);
+ evas_object_smart_callback_add(ewk_view_,
+ "close,window",
+ close_callback,
+ this);
+
+ smart_callbacks_["create,window"] = create_callback;
+ smart_callbacks_["close,window"] = close_callback;
+}
+
std::string WebViewImpl::GetUrl() {
return std::string(ewk_view_url_get(ewk_view_));
}