static void notify_load_status_cb(WebKitWebView* view, GParamSpec* pspec, GMainLoop* loop) { WebKitLoadStatus status = webkit_web_view_get_load_status (view); WebKitWebFrame* frame = webkit_web_view_get_main_frame(view); WebKitWebDataSource* dataSource = webkit_web_frame_get_data_source(frame); if (status == WEBKIT_LOAD_COMMITTED) { g_assert(webkit_web_data_source_is_loading(dataSource)); return; } else if (status != WEBKIT_LOAD_FINISHED) return; /* Test get_request */ g_test_message("Testing webkit_web_data_source_get_request"); WebKitNetworkRequest* request = webkit_web_data_source_get_request(dataSource); g_assert_cmpstr(webkit_network_request_get_uri(request), ==, "http://www.webkit.org/"); /* Test get_main_resource */ g_test_message("Testing webkit_web_data_source_get_main_resource"); WebKitWebResource* resource = webkit_web_data_source_get_main_resource(dataSource); g_assert_cmpstr("text/html", ==, webkit_web_resource_get_mime_type(resource)); g_assert_cmpstr("http://www.webkit.org/", ==, webkit_web_resource_get_uri(resource)); /* Test get_data. We just test if data has certain size for the mean time */ g_test_message("Testing webkit_web_data_source_get_data has certain size"); GString* data = webkit_web_data_source_get_data(dataSource); g_assert(data->len > 100); /* FIXME: Add test for get_encoding */ g_main_loop_quit(loop); }
int edit_src(struct tab *t, struct karg *args) { WebKitWebFrame *frame; WebKitWebDataSource *ds; GString *contents; struct edit_src_cb_args *ext_args; if (external_editor == NULL){ show_oops(t,"Setting external_editor not set"); return (1); } frame = webkit_web_view_get_focused_frame(t->wv); ds = webkit_web_frame_get_data_source(frame); if (webkit_web_data_source_is_loading(ds)) { show_oops(t,"Webpage is still loading."); return (1); } contents = webkit_web_data_source_get_data(ds); if (!contents) show_oops(t,"No contents - opening empty file"); ext_args = g_malloc(sizeof(struct edit_src_cb_args)); ext_args->frame = frame; ext_args->data_src = ds; /* Check every 100 ms if file has changed */ open_external_editor(t, contents ? contents->str : "", &edit_src_cb, ext_args); return (0); }
static void notify_load_status_lifetime_cb(WebKitWebView* view, GParamSpec* pspec, GMainLoop* loop) { WebKitLoadStatus status = webkit_web_view_get_load_status (view); WebKitWebFrame* frame = webkit_web_view_get_main_frame(view); WebKitWebDataSource* dataSource = webkit_web_frame_get_data_source(frame); if (status == WEBKIT_LOAD_COMMITTED) { g_assert(webkit_web_data_source_is_loading(dataSource)); return; } else if (status != WEBKIT_LOAD_FINISHED) return; g_main_loop_quit(loop); }