Changeset 56531 in webkit


Ignore:
Timestamp:
Mar 25, 2010 5:03:38 AM (14 years ago)
Author:
eric@webkit.org
Message:

2010-03-25 Sergio Villar Senín <svillar@igalia.com>

Reviewed by Xan Lopez.

Added new API webkit_web_back_forward_list_clear. This function
clears the back forward list

[GTK] http/history tests are failing
https://bugs.webkit.org/show_bug.cgi?id=36173

  • tests/testwebbackforwardlist.c: (test_webkit_web_back_forward_list_clear): (main): added new unit test for the new API
  • webkit/webkitwebbackforwardlist.cpp: (webkit_web_back_forward_list_clear):
  • webkit/webkitwebbackforwardlist.h: new function that clears the back forward list
Location:
trunk/WebKit/gtk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/gtk/ChangeLog

    r56439 r56531  
     12010-03-25  Sergio Villar Senín  <svillar@igalia.com>
     2
     3        Reviewed by Xan Lopez.
     4
     5        Added new API webkit_web_back_forward_list_clear. This function
     6        clears the back forward list
     7
     8        [GTK] http/history tests are failing
     9        https://bugs.webkit.org/show_bug.cgi?id=36173
     10
     11        * tests/testwebbackforwardlist.c:
     12        (test_webkit_web_back_forward_list_clear):
     13        (main): added new unit test for the new API
     14        * webkit/webkitwebbackforwardlist.cpp:
     15        (webkit_web_back_forward_list_clear):
     16        * webkit/webkitwebbackforwardlist.h: new function that clears the
     17        back forward list
     18
    1192010-03-24  Kent Tamura  <tkent@chromium.org>
    220
  • trunk/WebKit/gtk/tests/testwebbackforwardlist.c

    r44903 r56531  
    267267}
    268268
     269static void test_webkit_web_back_forward_list_clear(void)
     270{
     271    WebKitWebView* webView;
     272    WebKitWebBackForwardList* webBackForwardList;
     273    WebKitWebHistoryItem* addItem;
     274    g_test_bug("36173");
     275
     276    webView = WEBKIT_WEB_VIEW(webkit_web_view_new());
     277    g_object_ref_sink(webView);
     278
     279    webBackForwardList = webkit_web_view_get_back_forward_list(webView);
     280    g_assert(webBackForwardList);
     281
     282    // Check that there is no item.
     283    g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0);
     284    g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0);
     285    g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList));
     286    g_assert(!webkit_web_view_can_go_forward(webView));
     287    g_assert(!webkit_web_view_can_go_back(webView));
     288
     289    // Check that clearing the empty list does not modify counters
     290    webkit_web_back_forward_list_clear(webBackForwardList);
     291    g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0);
     292    g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0);
     293    g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList));
     294    g_assert(!webkit_web_view_can_go_forward(webView));
     295    g_assert(!webkit_web_view_can_go_back(webView));
     296
     297    // Add a new item
     298    addItem = webkit_web_history_item_new_with_data("http://example.com/", "Added site");
     299    webkit_web_back_forward_list_add_item(webBackForwardList, addItem);
     300    g_object_unref(addItem);
     301    g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem));
     302
     303    // Check that after clearing the list the added item is no longer in the list
     304    webkit_web_back_forward_list_clear(webBackForwardList);
     305    g_assert(!webkit_web_back_forward_list_contains_item(webBackForwardList, addItem));
     306
     307    // Check that after clearing it, the list is empty
     308    g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0);
     309    g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0);
     310    g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList));
     311    g_assert(!webkit_web_view_can_go_forward(webView));
     312    g_assert(!webkit_web_view_can_go_back(webView));
     313
     314    g_object_unref(webView);
     315}
     316
    269317int main(int argc, char** argv)
    270318{
     
    276324    g_test_add_func("/webkit/webbackforwardlist/list_order", test_webkit_web_back_forward_list_order);
    277325    g_test_add_func("/webkit/webhistoryitem/lifetime", test_webkit_web_history_item_lifetime);
     326    g_test_add_func("/webkit/webbackforwardlist/clear", test_webkit_web_back_forward_list_clear);
    278327    return g_test_run ();
    279328}
  • trunk/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp

    r55915 r56531  
    439439}
    440440
     441/**
     442 * webkit_web_back_forward_list_clear:
     443 * @webBackForwardList:  a #WebKitWebBackForwardList
     444 *
     445 * Clears the @webBackForwardList by removing all its elements. Note that not even
     446 * the current page is kept in list when cleared so you would have to add it later.
     447 *
     448 * Since: 1.1.30
     449 **/
     450void webkit_web_back_forward_list_clear(WebKitWebBackForwardList* webBackForwardList)
     451{
     452    g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList));
     453
     454    WebCore::BackForwardList* backForwardList = core(webBackForwardList);
     455    if (!backForwardList || !backForwardList->enabled() || !backForwardList->entries().size())
     456        return;
     457
     458    // Clear the current list by setting capacity to 0
     459    int capacity = backForwardList->capacity();
     460    backForwardList->setCapacity(0);
     461    backForwardList->setCapacity(capacity);
     462}
     463
    441464WebCore::BackForwardList* WebKit::core(WebKitWebBackForwardList* webBackForwardList)
    442465{
  • trunk/WebKit/gtk/webkit/webkitwebbackforwardlist.h

    r49168 r56531  
    111111webkit_web_back_forward_list_add_item                    (WebKitWebBackForwardList *web_back_forward_list,
    112112                                                          WebKitWebHistoryItem     *history_item);
     113WEBKIT_API void
     114webkit_web_back_forward_list_clear                       (WebKitWebBackForwardList *web_back_forward_list);
    113115
    114116G_END_DECLS
Note: See TracChangeset for help on using the changeset viewer.