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_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); }
JNIEXPORT jintLong JNICALL WebKitGTK_NATIVE(_1webkit_1web_1data_1source_1get_1data) (JNIEnv *env, jclass that, jintLong arg0) { jintLong rc = 0; WebKitGTK_NATIVE_ENTER(env, that, _1webkit_1web_1data_1source_1get_1data_FUNC); rc = (jintLong)webkit_web_data_source_get_data((WebKitWebDataSource *)arg0); WebKitGTK_NATIVE_EXIT(env, that, _1webkit_1web_1data_1source_1get_1data_FUNC); return rc; }
wxString wxWebViewWebKit::GetPageSource() const { WebKitWebFrame* frame = webkit_web_view_get_main_frame(m_web_view); WebKitWebDataSource* src = webkit_web_frame_get_data_source (frame); // TODO: check encoding with // const gchar* // webkit_web_data_source_get_encoding(WebKitWebDataSource *data_source); return wxString(webkit_web_data_source_get_data (src)->str, wxConvUTF8); }
/* ghtml_get_source */ char const * ghtml_get_source(GtkWidget * widget) { #if WEBKIT_CHECK_VERSION(1, 1, 0) GHtml * ghtml; WebKitWebFrame * frame; WebKitWebDataSource * source; GString * str; ghtml = g_object_get_data(G_OBJECT(widget), "ghtml"); frame = webkit_web_view_get_main_frame(WEBKIT_WEB_VIEW(ghtml->view)); source = webkit_web_frame_get_data_source(frame); if((str = webkit_web_data_source_get_data(source)) == NULL) return NULL; return str->str; #else return NULL; #endif }