static void test_webkit_web_settings_user_agent(void) { WebKitWebSettings* settings; GtkWidget* webView; gchar* defaultUserAgent; gchar* userAgent; g_test_bug("17375"); webView = webkit_web_view_new(); g_object_ref_sink(webView); settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView)); defaultUserAgent = g_strdup(webkit_web_settings_get_user_agent(settings)); // test a custom UA string userAgent = NULL; g_object_set(G_OBJECT(settings), "user-agent", "testwebsettings/0.1", NULL); g_object_get(G_OBJECT(settings),"user-agent", &userAgent, NULL); g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); g_free(userAgent); // setting it to NULL or an empty value should give us the default UA string userAgent = NULL; g_object_set(G_OBJECT(settings), "user-agent", NULL, NULL); g_object_get(G_OBJECT(settings),"user-agent", &userAgent, NULL); g_assert_cmpstr(userAgent, ==, defaultUserAgent); g_free(userAgent); userAgent = NULL; g_object_set(G_OBJECT(settings), "user-agent", "", NULL); g_object_get(G_OBJECT(settings),"user-agent", &userAgent, NULL); g_assert_cmpstr(userAgent, ==, defaultUserAgent); g_free(userAgent); g_free(defaultUserAgent); g_object_unref(webView); }
String FrameLoaderClient::userAgent(const KURL&) { WebKitWebSettings* settings = webkit_web_view_get_settings(getViewFromFrame(m_frame)); return String::fromUTF8(webkit_web_settings_get_user_agent(settings)); }
static void test_webkit_web_settings_user_agent(void) { WebKitWebSettings *settings; GtkWidget *webView; char *defaultUserAgent; char *userAgent = 0; g_test_bug("17375"); webView = webkit_web_view_new(); g_object_ref_sink(webView); settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView)); defaultUserAgent = g_strdup(webkit_web_settings_get_user_agent(settings)); test_non_quirky_user_agents(settings, defaultUserAgent); /* Test quirky google domains */ g_object_set(settings, "user-agent", "testwebsettings/0.1", NULL); userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.com/"); g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); g_free(userAgent); userAgent = webkitWebSettingsUserAgentForURI(settings, "http://gmail.com/"); g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); g_free(userAgent); userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.com.br/"); g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); g_free(userAgent); userAgent = webkitWebSettingsUserAgentForURI(settings, "http://calendar.google.com/"); g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); g_free(userAgent); /* Now enable quirks handling */ g_object_set(settings, "enable-site-specific-quirks", TRUE, NULL); test_non_quirky_user_agents(settings, defaultUserAgent); g_object_set(settings, "user-agent", "testwebsettings/0.1", NULL); userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.com/"); g_assert_cmpstr(userAgent, ==, defaultUserAgent); g_free(userAgent); userAgent = webkitWebSettingsUserAgentForURI(settings, "http://gmail.com/"); g_assert_cmpstr(userAgent, ==, defaultUserAgent); g_free(userAgent); userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.com.br/"); g_assert_cmpstr(userAgent, ==, defaultUserAgent); g_free(userAgent); userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.uk.not.com.br/"); g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); g_free(userAgent); g_free(defaultUserAgent); g_object_unref(webView); }
static void activateEntry(GtkWidget* entry, gpointer* gdata) { WebKitWebView* webView = g_object_get_data(G_OBJECT(entry), "webView"); const gchar* entry_str = gtk_entry_get_text(GTK_ENTRY(entry)); WebKitWebSettings* settings = webkit_web_view_get_settings( WEBKIT_WEB_VIEW(webView)); gfloat current_zoom = webkit_web_view_get_zoom_level(webView); gboolean fz = webkit_web_view_get_full_content_zoom(webView); if (entry_str[0] != 0) { if (strncmp(entry_str, "?", 1) == 0) { gchar* s = g_strdup(entry_str); s++; gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, search_str, s, NULL)); if ((startpage == TRUE) && (fz == TRUE) && (current_zoom != 1.0)) { fz = FALSE; webkit_web_view_set_full_content_zoom(webView, fz); GtkWidget* window = g_object_get_data(G_OBJECT(entry), "window"); setZbutton(window, fz); } } else if (strncmp(entry_str, "=", 1) == 0) { gchar* s = g_strdup(entry_str); s++; searchText(webView, s); return; } else if (strncmp(entry_str, "#", 1) == 0) { int r = 0; r = fork(); if (r == 0) { execl("/usr/local/bin/kwebhelper.py", "kwebhelper.py", "cmd", entry_str, NULL); } return; } else if (strncmp(entry_str, "!", 1) == 0) { gchar* s = g_strdup(entry_str); s++; if (strlen(s) > 1) { g_object_set(G_OBJECT(settings), "spell-checking-languages", s, NULL); gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "Spell checking language has been set to: ", s, NULL)); } return; } else if (strncmp(entry_str, "&", 1) == 0) { gchar* s = g_strdup(entry_str); s++; g_object_set(G_OBJECT(settings), "user-stylesheet-uri", s, NULL); gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "User style sheet: ", s, NULL)); return; } else if (strncmp(entry_str, "$", 1) == 0) { gchar* s = g_strdup(entry_str); s++; g_object_set(G_OBJECT(settings), "user-agent", s, NULL); const gchar* t = webkit_web_settings_get_user_agent(settings); gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "User agent: ", t, NULL)); return; } else if (strcmp(entry_str, ":c") == 0) { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "file://", homedir, "/kweb_about_c.html", NULL)); } else if (strncmp(entry_str, ":", 1) == 0) { gchar* s = g_strdup(entry_str); s++; gchar* fname = g_strjoin(NULL, "/usr/local/share/kweb/kweb_about_", s, ".html", NULL); struct stat stbc; if (stat(fname, &stbc) == 0) { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "file://", fname, NULL)); } else { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "file:///usr/local/share/kweb/kweb_about_e.html", NULL)); } } else if (strstr(entry_str, "://") == NULL) { if (strncmp(entry_str, "/", 1) == 0) { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "file://", entry_str, NULL)); } else { gtk_entry_set_text(GTK_ENTRY(entry), g_strjoin(NULL, "http://", entry_str, NULL)); } } const gchar* uri = gtk_entry_get_text(GTK_ENTRY(entry)); webkit_web_view_stop_loading(webView); webkit_web_view_load_uri(webView, uri); gtk_widget_grab_focus(GTK_WIDGET(webView)); } }