Changeset 36012 in webkit


Ignore:
Timestamp:
Sep 1, 2008 5:44:01 AM (16 years ago)
Author:
jmalonzo@webkit.org
Message:

2008-09-01 Alp Toker <alp@nuanti.com>

Reviewed by Eric Seidel.

https://bugs.webkit.org/show_bug.cgi?id=19939
[GTK] webkit_web_history_item_get_title() fails with assertion

Make sure newly constructed WebHistoryItem objects wrap a WebCore
history item when necessary. Avoid G_PARAM_CONSTRUCT since it destroys
history data -- use WEBKIT_PARAM flags instead as they do the right
thing. This restores history functionality.

Also use CString to simplify UTF-8 string management.

  • webkit/webkitwebbackforwardlist.cpp: (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): No need to initialize the vector with a size since it's cleared by the callee.
  • webkit/webkitwebhistoryitem.cpp: (_WebKitWebHistoryItemPrivate::webkit_web_history_item_finalize): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri):
Location:
trunk/WebKit/gtk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/gtk/ChangeLog

    r35958 r36012  
     12008-09-01  Alp Toker  <alp@nuanti.com>
     2
     3        Reviewed by Eric Seidel.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=19939
     6        [GTK] webkit_web_history_item_get_title() fails with assertion
     7
     8        Make sure newly constructed WebHistoryItem objects wrap a WebCore
     9        history item when necessary. Avoid G_PARAM_CONSTRUCT since it destroys
     10        history data -- use WEBKIT_PARAM flags instead as they do the right
     11        thing. This restores history functionality.
     12
     13        Also use CString to simplify UTF-8 string management.
     14
     15        * webkit/webkitwebbackforwardlist.cpp:
     16        (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit):
     17        (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit):
     18        No need to initialize the vector with a size since it's cleared by the
     19        callee.
     20        * webkit/webkitwebhistoryitem.cpp:
     21        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_finalize):
     22        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init):
     23        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item):
     24        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new):
     25        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data):
     26        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title):
     27        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title):
     28        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title):
     29        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri):
     30        (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri):
     31
    1322008-08-27  Adrien Nader  <camaradetux@gmail.com>
    233
  • trunk/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp

    r34570 r36012  
    164164        return NULL;
    165165
    166     WebCore::HistoryItemVector items(limit);
     166    WebCore::HistoryItemVector items;
    167167    GList* forwardItems = { 0 };
    168168
     
    194194        return NULL;
    195195
    196     WebCore::HistoryItemVector items(limit);
     196    WebCore::HistoryItemVector items;
    197197    GList* backItems = { 0 };
    198198
  • trunk/WebKit/gtk/webkit/webkitwebhistoryitem.cpp

    r35136 r36012  
    3737    WTF::RefPtr<WebCore::HistoryItem> historyItem;
    3838
    39     gchar* title;
    40     gchar* alternateTitle;
    41     gchar* uri;
    42     gchar* originalUri;
     39    WebCore::CString title;
     40    WebCore::CString alternateTitle;
     41    WebCore::CString uri;
     42    WebCore::CString originalUri;
    4343};
    4444
     
    106106    WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
    107107
    108     g_free(priv->title);
    109     g_free(priv->alternateTitle);
    110     g_free(priv->uri);
    111     g_free(priv->originalUri);
     108    priv->title = WebCore::CString();
     109    priv->alternateTitle = WebCore::CString();
     110    priv->uri = WebCore::CString();
     111    priv->originalUri = WebCore::CString();
    112112
    113113    G_OBJECT_CLASS(webkit_web_history_item_parent_class)->finalize(object);
     
    122122    gobject_class->set_property = webkit_web_history_item_set_property;
    123123    gobject_class->get_property = webkit_web_history_item_get_property;
    124 
    125     GParamFlags flags = (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT);
    126124
    127125    /**
     
    139137                                    "The title of the history item",
    140138                                    NULL,
    141                                     G_PARAM_READABLE));
     139                                    WEBKIT_PARAM_READABLE));
    142140
    143141    /**
     
    155153                                    "The alternate title of the history item",
    156154                                    NULL,
    157                                     flags));
     155                                    WEBKIT_PARAM_READWRITE));
    158156
    159157    /**
     
    171169                                    "The URI of the history item",
    172170                                    NULL,
    173                                     G_PARAM_READABLE));
     171                                    WEBKIT_PARAM_READABLE));
    174172
    175173    /**
     
    187185                                    "The original URI of the history item",
    188186                                    NULL,
    189                                     G_PARAM_READABLE));
     187                                    WEBKIT_PARAM_READABLE));
    190188
    191189   /**
     
    203201                                    "The time at which the history item was last visited",
    204202                                    0, G_MAXDOUBLE, 0,
    205                                     G_PARAM_READABLE));
     203                                    WEBKIT_PARAM_READABLE));
    206204
    207205    g_type_class_add_private(gobject_class, sizeof(WebKitWebHistoryItemPrivate));
     
    258256    WebKitWebHistoryItem* webHistoryItem = kit(item);
    259257
    260     if (!webHistoryItem) {
     258    if (webHistoryItem)
     259        g_object_ref(webHistoryItem);
     260    else {
    261261        webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL));
    262         webkit_history_item_add(webHistoryItem, core(webHistoryItem));
     262        WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
     263
     264        priv->historyItem = item;
     265        webkit_history_item_add(webHistoryItem, priv->historyItem.get());
    263266    }
    264267
     
    274277 * Return value: the new #WebKitWebHistoryItem
    275278 */
    276 WebKitWebHistoryItem* webkit_web_history_item_new(void)
     279WebKitWebHistoryItem* webkit_web_history_item_new()
    277280{
    278281    WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL));
     
    297300{
    298301    WebCore::KURL historyUri(uri);
    299     WebCore::String historyTitle(title);
     302    WebCore::String historyTitle = WebCore::String::fromUTF8(title);
    300303
    301304    WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL));
     
    323326
    324327    WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
    325     WebCore::String title = item->title();
    326     g_free(priv->title);
    327     priv->title = g_strdup(title.utf8().data());
    328 
    329     return priv->title;
     328    priv->title = item->title().utf8();
     329
     330    return priv->title.data();
    330331}
    331332
     
    347348
    348349    WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
    349     WebCore::String alternateTitle = item->alternateTitle();
    350     g_free(priv->alternateTitle);
    351     priv->alternateTitle = g_strdup(alternateTitle.utf8().data());
    352 
    353     return priv->alternateTitle;
     350    priv->alternateTitle = item->alternateTitle().utf8();
     351
     352    return priv->alternateTitle.data();
    354353}
    355354
     
    364363{
    365364    g_return_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem));
     365    g_return_if_fail(title);
    366366
    367367    WebCore::HistoryItem* item = core(webHistoryItem);
     
    387387    g_return_val_if_fail(item != NULL, NULL);
    388388
    389     WebCore::String uri = item->urlString();
    390     WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
    391     g_free(priv->uri);
    392     priv->uri = g_strdup(uri.utf8().data());
    393 
    394     return priv->uri;
     389    WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
     390    priv->uri = item->urlString().utf8();
     391
     392    return priv->uri.data();
    395393}
    396394
     
    411409    g_return_val_if_fail(item != NULL, NULL);
    412410
    413     WebCore::String originalUri = item->originalURLString();
    414     WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
    415     g_free(priv->originalUri);
    416     priv->originalUri = g_strdup(originalUri.utf8().data());
    417 
    418     return webHistoryItem->priv->originalUri;
     411    WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv;
     412    priv->originalUri = item->originalURLString().utf8();
     413
     414    return webHistoryItem->priv->originalUri.data();
    419415}
    420416
Note: See TracChangeset for help on using the changeset viewer.