/* ghtml_can_go_back */ gboolean ghtml_can_go_back(GtkWidget * widget) { GHtml * ghtml; ghtml = g_object_get_data(G_OBJECT(widget), "ghtml"); return webkit_web_view_can_go_back(WEBKIT_WEB_VIEW(ghtml->view)); }
static gint luaH_webview_can_go_back(lua_State *L) { webview_data_t *d = luaH_checkwvdata(L, 1); lua_pushboolean(L, webkit_web_view_can_go_back(d->view)); return 1; }
static void test_webkit_web_back_forward_list_clear(void) { WebKitWebView* webView; WebKitWebBackForwardList* webBackForwardList; WebKitWebHistoryItem* addItem; g_test_bug("36173"); webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); g_object_ref_sink(webView); webBackForwardList = webkit_web_view_get_back_forward_list(webView); g_assert(webBackForwardList); // Check that there is no item. g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); g_assert(!webkit_web_view_can_go_forward(webView)); g_assert(!webkit_web_view_can_go_back(webView)); // Check that clearing the empty list does not modify counters webkit_web_back_forward_list_clear(webBackForwardList); g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); g_assert(!webkit_web_view_can_go_forward(webView)); g_assert(!webkit_web_view_can_go_back(webView)); // Add a new item addItem = webkit_web_history_item_new_with_data("http://example.com/", "Added site"); webkit_web_back_forward_list_add_item(webBackForwardList, addItem); g_object_unref(addItem); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem)); // Check that after clearing the list the added item is no longer in the list webkit_web_back_forward_list_clear(webBackForwardList); g_assert(!webkit_web_back_forward_list_contains_item(webBackForwardList, addItem)); // Check that after clearing it, the list is empty g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); g_assert(!webkit_web_view_can_go_forward(webView)); g_assert(!webkit_web_view_can_go_back(webView)); g_object_unref(webView); }
void WebkitBrowser::load_finished (WebKitWebView *page, WebKitWebFrame *frame) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0); gtk_widget_set_sensitive (button_refresh, true); gtk_widget_set_sensitive (button_stop, false); gtk_widget_set_sensitive (button_back, webkit_web_view_can_go_back (WEBKIT_WEB_VIEW (webview))); gtk_widget_set_sensitive (button_forward, webkit_web_view_can_go_forward (WEBKIT_WEB_VIEW (webview))); }
JNIEXPORT jint JNICALL WebKitGTK_NATIVE(_1webkit_1web_1view_1can_1go_1back) (JNIEnv *env, jclass that, jintLong arg0) { jint rc = 0; WebKitGTK_NATIVE_ENTER(env, that, _1webkit_1web_1view_1can_1go_1back_FUNC); rc = (jint)webkit_web_view_can_go_back((WebKitWebView *)arg0); WebKitGTK_NATIVE_EXIT(env, that, _1webkit_1web_1view_1can_1go_1back_FUNC); return rc; }
void WebkitBrowser::load_started (WebKitWebView *page, WebKitWebFrame *frame) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 1); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar), 0); gtk_widget_set_sensitive (button_refresh, false); gtk_widget_set_sensitive (button_stop, true); gtk_widget_set_sensitive (button_back, webkit_web_view_can_go_back (WEBKIT_WEB_VIEW (webview))); gtk_widget_set_sensitive (button_forward, webkit_web_view_can_go_forward (WEBKIT_WEB_VIEW (webview))); }
void WebViewTest::goBack() { if (webkit_web_view_can_go_back(m_webView)) { WebKitBackForwardList* list = webkit_web_view_get_back_forward_list(m_webView); WebKitBackForwardListItem* item = webkit_back_forward_list_get_nth_item(list, -1); m_activeURI = webkit_back_forward_list_item_get_original_uri(item); } // Call go_back even when can_go_back returns FALSE to check nothing happens. webkit_web_view_go_back(m_webView); }
gboolean on_back_release_cb(ClutterActor *actor, ClutterEvent *event, WebKitWebView *web_view) { if (webkit_web_view_can_go_back(web_view)) { webkit_web_view_go_back(web_view); } return TRUE; }
static void browserWindowUpdateNavigationActions(BrowserWindow *window, WebKitBackForwardList *backForwadlist) { gtk_widget_set_sensitive(window->backItem, webkit_web_view_can_go_back(window->webView)); gtk_widget_set_sensitive(window->forwardItem, webkit_web_view_can_go_forward(window->webView)); GList *list = g_list_reverse(webkit_back_forward_list_get_back_list_with_limit(backForwadlist, 10)); gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(window->backItem), browserWindowCreateBackForwardMenu(window, list)); g_list_free(list); list = webkit_back_forward_list_get_forward_list_with_limit(backForwadlist, 10); gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(window->forwardItem), browserWindowCreateBackForwardMenu(window, list)); g_list_free(list); }
void WebViewTest::goBack() { bool canGoBack = webkit_web_view_can_go_back(m_webView); if (canGoBack) { WebKitBackForwardList* list = webkit_web_view_get_back_forward_list(m_webView); WebKitBackForwardListItem* item = webkit_back_forward_list_get_nth_item(list, -1); m_activeURI = webkit_back_forward_list_item_get_original_uri(item); } // Call go_back even when can_go_back returns FALSE to check nothing happens. webkit_web_view_go_back(m_webView); if (canGoBack) { g_assert(webkit_web_view_is_loading(m_webView)); g_assert_cmpstr(webkit_web_view_get_uri(m_webView), ==, m_activeURI.data()); } }
static VbResult normal_navigate(Client *c, const NormalCmdInfo *info) { int count; WebKitBackForwardList *list; WebKitBackForwardListItem *item; WebKitWebView *view = c->webview; switch (info->key) { case CTRL('I'): /* fall through */ case CTRL('O'): count = info->count ? info->count : 1; if (info->key == CTRL('O')) { if (webkit_web_view_can_go_back(view)) { list = webkit_web_view_get_back_forward_list(view); item = webkit_back_forward_list_get_nth_item(list, -1 * count); webkit_web_view_go_to_back_forward_list_item(view, item); } } else { if (webkit_web_view_can_go_forward(view)) { list = webkit_web_view_get_back_forward_list(view); item = webkit_back_forward_list_get_nth_item(list, count); webkit_web_view_go_to_back_forward_list_item(view, item); } } break; case 'r': webkit_web_view_reload(view); break; case 'R': webkit_web_view_reload_bypass_cache(view); break; case CTRL('C'): webkit_web_view_stop_loading(view); break; } return RESULT_COMPLETE; }
bool wxWebViewWebKit::CanGoBack() const { return webkit_web_view_can_go_back(m_web_view); }
static void update_actions (void) { GtkAction *action; WebKitWebBackForwardList *back_forward_list; WebKitWebFrame *frame; back_forward_list = webkit_web_view_get_back_forward_list (WEBKIT_WEB_VIEW (view)); /* update the back button and its menu */ action = gtk_ui_manager_get_action (ui_manager, "/ui/help-browser-popup/back"); gtk_action_set_sensitive (action, webkit_web_view_can_go_back (WEBKIT_WEB_VIEW (view))); if (back_forward_list) { const GList *list; list = webkit_web_back_forward_list_get_back_list_with_limit (back_forward_list, 12); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (button_prev), build_menu (list, TRUE)); } else { gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (button_prev), NULL); } /* update the forward button and its menu */ action = gtk_ui_manager_get_action (ui_manager, "/ui/help-browser-popup/forward"); gtk_action_set_sensitive (action, webkit_web_view_can_go_forward (WEBKIT_WEB_VIEW (view))); if (back_forward_list) { const GList *list; list = webkit_web_back_forward_list_get_forward_list_with_limit (back_forward_list, 12); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (button_next), build_menu (list, FALSE)); } else { gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (button_next), NULL); } /* update the copy-location action */ action = gtk_ui_manager_get_action (ui_manager, "/ui/help-browser-popup/copy-location"); frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (view)); gtk_action_set_sensitive (action, webkit_web_frame_get_uri (frame) != NULL); /* update the show-index action */ action = gtk_ui_manager_get_action (ui_manager, "/ui/help-browser-popup/show-index"); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), gtk_widget_get_visible (sidebar)); }
/** * This is for keypresses that apply to a particular WebKitPage, and as such * require a reference to the tab itself. */ gboolean juniper_events_tab_key_press(GtkWidget * widget, GdkEventKey * event, GtkVBox * tab) { WebKitWebView * page; page = juniper_tabs_page_for_tab(tab); if (event->state & GDK_MOD1_MASK) { if (event->keyval == GDK_Left) { /* <Alt><Left> goes back */ if (webkit_web_view_can_go_back(page)) { juniper_ui_status_bar_clear(); webkit_web_view_go_back(page); } else { juniper_ui_status_bar_update("At start of history."); } return TRUE; } else if (event->keyval == GDK_Right) { /* <Alt><Right> goes forward */ if (webkit_web_view_can_go_forward(page)) { juniper_ui_status_bar_clear(); webkit_web_view_go_forward(page); } else { juniper_ui_status_bar_update("At end of history."); } return TRUE; } else if (event->keyval == GDK_Home) { /* <Alt><Home> goes to the homepage */ juniper_tabs_navigate_to(tab, juniper_prefs_get("homepage")); return TRUE; } } else if (event->state & GDK_CONTROL_MASK) { if (event->keyval == GDK_r) { /* <Ctrl>R reloads the page */ webkit_web_view_reload(page); return TRUE; } } else if (event->state == 0) { if (event->keyval == GDK_Escape) { /* <Esc> stops loading the page */ webkit_web_view_stop_loading(page); return TRUE; } else if (event->keyval == GDK_F5) { /* <F5> reloads the page */ webkit_web_view_reload(page); return TRUE; } } return FALSE; }
bool wxWebViewWebKit::CanGoBack() const { return webkit_web_view_can_go_back (WEBKIT_WEB_VIEW(web_view)); }
static void test_webkit_web_back_forward_list_add_item(void) { WebKitWebView* webView; WebKitWebBackForwardList* webBackForwardList; WebKitWebHistoryItem* addItem1; WebKitWebHistoryItem* addItem2; WebKitWebHistoryItem* backItem; WebKitWebHistoryItem* currentItem; g_test_bug("22988"); webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); g_object_ref_sink(webView); webkit_web_view_set_maintains_back_forward_list(webView, TRUE); webBackForwardList = webkit_web_view_get_back_forward_list(webView); g_assert(webBackForwardList); // Check that there is no item. g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); g_assert(!webkit_web_view_can_go_forward(webView)); g_assert(!webkit_web_view_can_go_back(webView)); // Add a new item addItem1 = webkit_web_history_item_new_with_data("http://example.com/", "Added site"); webkit_web_back_forward_list_add_item(webBackForwardList, addItem1); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem1)); // Check that the added item is the current item. currentItem = webkit_web_back_forward_list_get_current_item(webBackForwardList); g_assert(currentItem); g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); g_assert(!webkit_web_view_can_go_forward(webView)); g_assert(!webkit_web_view_can_go_back(webView)); g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Added site"); // Add another item. addItem2 = webkit_web_history_item_new_with_data("http://example.com/2/", "Added site 2"); webkit_web_back_forward_list_add_item(webBackForwardList, addItem2); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem2)); // Check that the added item is new current item. currentItem = webkit_web_back_forward_list_get_current_item(webBackForwardList); g_assert(currentItem); g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 1); g_assert(!webkit_web_view_can_go_forward(webView)); g_assert(webkit_web_view_can_go_back(webView)); g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/2/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Added site 2"); backItem = webkit_web_back_forward_list_get_back_item(webBackForwardList); g_assert(backItem); g_assert_cmpstr(webkit_web_history_item_get_uri(backItem), ==, "http://example.com/"); g_assert_cmpstr(webkit_web_history_item_get_title(backItem), ==, "Added site"); // Go to the first added item. g_assert(webkit_web_view_go_to_back_forward_item(webView, addItem1)); g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 1); g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); g_assert(webkit_web_view_can_go_forward(webView)); g_assert(!webkit_web_view_can_go_back(webView)); g_object_unref(webView); }
static void test_webkit_web_back_forward_list_order(void) { WebKitWebView* webView; WebKitWebBackForwardList* webBackForwardList; WebKitWebHistoryItem* item1; WebKitWebHistoryItem* item2; WebKitWebHistoryItem* item3; WebKitWebHistoryItem* item4; WebKitWebHistoryItem* currentItem; GList* backList = NULL; GList* forwardList = NULL; g_test_bug("22694"); webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); g_object_ref_sink(webView); webkit_web_view_set_maintains_back_forward_list(webView, TRUE); webBackForwardList = webkit_web_view_get_back_forward_list(webView); g_assert(webBackForwardList); // Check that there is no item. g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); g_assert(!webkit_web_view_can_go_forward(webView)); g_assert(!webkit_web_view_can_go_back(webView)); // Add a new items item1 = webkit_web_history_item_new_with_data("http://example.com/1/", "Site 1"); webkit_web_back_forward_list_add_item(webBackForwardList, item1); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item1)); item2 = webkit_web_history_item_new_with_data("http://example.com/2/", "Site 2"); webkit_web_back_forward_list_add_item(webBackForwardList, item2); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item2)); item3 = webkit_web_history_item_new_with_data("http://example.com/3/", "Site 3"); webkit_web_back_forward_list_add_item(webBackForwardList, item3); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item3)); item4 = webkit_web_history_item_new_with_data("http://example.com/4/", "Site 4"); webkit_web_back_forward_list_add_item(webBackForwardList, item4); g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item4)); // check the back list order backList = webkit_web_back_forward_list_get_back_list_with_limit(webBackForwardList, 5); g_assert(backList); currentItem = WEBKIT_WEB_HISTORY_ITEM(backList->data); g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/3/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 3"); backList = backList->next; currentItem = WEBKIT_WEB_HISTORY_ITEM(backList->data); g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/2/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 2"); backList = backList->next; currentItem = WEBKIT_WEB_HISTORY_ITEM(backList->data); g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/1/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 1"); g_list_free(backList); // check the forward list order g_assert(webkit_web_view_go_to_back_forward_item(webView, item1)); forwardList = webkit_web_back_forward_list_get_forward_list_with_limit(webBackForwardList,5); g_assert(forwardList); currentItem = WEBKIT_WEB_HISTORY_ITEM(forwardList->data); g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/4/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 4"); forwardList = forwardList->next; currentItem = WEBKIT_WEB_HISTORY_ITEM(forwardList->data); g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/3/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 3"); forwardList = forwardList->next; currentItem = WEBKIT_WEB_HISTORY_ITEM(forwardList->data); g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/2/"); g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 2"); g_list_free(forwardList); g_object_unref(webView); }
gboolean html_can_go_back(Html *html) { g_return_val_if_fail(IS_HTML (html), FALSE); return webkit_web_view_can_go_back(html->webview); }
static char* gtkWebBrowserGetCanGoBackAttrib(Ihandle* ih) { return iupStrReturnBoolean(webkit_web_view_can_go_back((WebKitWebView*)ih->handle)); }
void browser_update_uri(Browser *b) { char *uri, *text, *nav, *temp; GdkColor *bg, *fg; uri = browser_get_uri(b); /* FIXME */ if (b->State.progress > 0 && b->State.progress < 100) { asprintf(&text, "Loading... %s (%d%%)", uri, b->State.progress); } else { text = strdup(uri); } /* ssl */ if (strstr(uri, "https://") == uri) { if (b->State.ssl) { /* ssl trusted */ bg = &(ripcurl->Style.statusbar_ssl_trust_bg); fg = &(ripcurl->Style.statusbar_ssl_trust_fg); } else { /* ssl untrusted */ bg = &(ripcurl->Style.statusbar_ssl_untrust_bg); fg = &(ripcurl->Style.statusbar_ssl_untrust_fg); } } else { bg = &(ripcurl->Style.statusbar_bg); fg = &(ripcurl->Style.statusbar_fg); } /* check for navigation */ nav = strdup(""); if (webkit_web_view_can_go_back(b->UI.view)) { strappend(nav, "-"); } if (webkit_web_view_can_go_forward(b->UI.view)) { strappend(nav, "+"); } if (strlen(nav) > 0) { /* navigation possible */ temp = strconcat(text, " [", nav, "]", NULL); free(text); text = temp; } free(nav); /* apply statusbar colors */ gtk_widget_modify_bg(GTK_WIDGET(b->UI.statusbar), GTK_STATE_NORMAL, bg); gtk_widget_modify_fg(GTK_WIDGET(b->UI.statusbar), GTK_STATE_NORMAL, fg); gtk_widget_modify_fg(GTK_WIDGET(b->Statusbar.text), GTK_STATE_NORMAL, fg); gtk_widget_modify_fg(GTK_WIDGET(b->Statusbar.buffer), GTK_STATE_NORMAL, fg); gtk_widget_modify_fg(GTK_WIDGET(b->Statusbar.position), GTK_STATE_NORMAL, fg); /* set text */ gtk_label_set_text(b->Statusbar.text, text); free(text); }