viking

webkit based web browser for Enlightenment
Log | Files | Refs | LICENSE

commit a39dabc25fe800bad84558ed4c71bc7fa5d72d2c
parent ca59d0d0644de7aed19a10df8cd7be4d687327fb
Author: Kyle Milz <kmilz@ucalgary.ca>
Date:   Mon, 24 Sep 2012 08:29:26 -0600

callbacks: stub out hooks for xss/protocol handler

also move the hooks for the inspector from uri_change time to buffer
creation time.

Diffstat:
Mmain.c | 34+++++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 11 deletions(-)

diff --git a/main.c b/main.c @@ -52,6 +52,7 @@ static void webview_title_changed_cb (void *, Evas_Object *, void *); static void webview_download_cb (void *, Evas_Object *, void *); static void inputmethod_changed_cb (void *, Evas_Object *, void *); static void icon_received_cb (void *, Evas_Object *, void *); +static void xss_detected_cb (void *, Evas_Object *, void *); static void webview_inspector_cb (void *, Evas_Object *, void *); static Eina_Bool process_keypress (void *, void*); static void webview_keypress_cb (void *, Evas *, Evas_Object *, void *); @@ -284,6 +285,13 @@ webview_progress_changed_cb(void *data, Evas_Object *obj, void *event_info) update_state(td->app); } + +static void +protocol_register_cb(void *data, Evas_Object *obj, void *event_info) +{ + printf("protocol_register()\n"); +} + static void webview_inspector_cb(void *data, Evas_Object *obj, void *event_info) { @@ -334,12 +342,6 @@ webview_uri_changed_cb(void *data, Evas_Object *obj, void *event_info) if (td->web != td->app->current_web) return; - Evas_Object *view = elm_web_webkit_view_get(td->web); - // Evas_Object *frame = ewk_view_frame_main_get(view); - - evas_object_smart_callback_add(view, "inspector,view,create", webview_inspector_cb, td); - evas_object_smart_callback_add(view, "inspector,view,close", webview_inspector_close_cb, td); - // userscript_hooks_start(elm_web_uri_get(td->web)); script(&a, td->app); @@ -786,6 +788,12 @@ set_widget_font_and_color(Evas_Object *widget, const char *font_str, const char } void +xss_detected_cb(void *data, Evas_Object *obj, void *event_info) +{ + printf("xss_detected()\n"); +} + +void icon_received_cb(void *data, Evas_Object *obj, void *event_info) { printf("icon_received_cb()\n"); @@ -1347,7 +1355,6 @@ buffer_add(App_Data *ad) elm_web_console_message_hook_set(td->web, webview_console_cb, td); elm_web_useragent_set(td->web, "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.514.0 Safari/534.7"); elm_web_history_enabled_set(td->web, EINA_TRUE); - elm_web_tab_propagate_set(td->web, EINA_FALSE); elm_web_inwin_mode_set(td->web, EINA_TRUE); evas_object_size_hint_weight_set(td->web, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -1355,7 +1362,7 @@ buffer_add(App_Data *ad) elm_naviframe_item_simple_push(ad->naviframe, td->web); - evas_object_data_set(td->web, "tab_data", td); + evas_object_data_set(td->web, "buffer_data", td); /* signals */ evas_object_smart_callback_add(td->web, "title,changed", webview_title_changed_cb, td); @@ -1368,15 +1375,20 @@ buffer_add(App_Data *ad) evas_object_smart_callback_add(td->web, "link,hover,in", webview_hoverlink_cb, td); evas_object_smart_callback_add(td->web, "link,hover,out", webview_hoverlink_out_cb, td); evas_object_smart_callback_add(td->web, "inputmethod,changed", inputmethod_changed_cb, td); - evas_object_smart_callback_add(td->web, "icon,received", icon_received_cb, td); + + Evas_Object *view = elm_web_webkit_view_get(td->web); + + evas_object_smart_callback_add(view, "inspector,view,create", webview_inspector_cb, td); + evas_object_smart_callback_add(view, "inspector,view,close", webview_inspector_close_cb, td); + evas_object_smart_callback_add(view, "protocolhandler,isregistered", protocol_register_cb, td); + evas_object_smart_callback_add(view, "icon,received", icon_received_cb, td); + evas_object_smart_callback_add(view, "xss,detected", xss_detected_cb, td); evas_object_event_callback_add(td->web, EVAS_CALLBACK_FREE, _web_free_cb, td); evas_object_event_callback_add(td->web, EVAS_CALLBACK_KEY_DOWN, webview_keypress_cb, td); // evas_object_event_callback_add(td->web, EVAS_CALLBACK_MOUSE_UP, notify_event_cb, td); evas_object_event_callback_add(td->web, EVAS_CALLBACK_MOUSE_WHEEL, webview_mousewheel_cb, td); - // buffer_current_set(td); - return td; }