Changeset 30226 in webkit
- Timestamp:
- Feb 14, 2008, 4:26:44 AM (17 years ago)
- Location:
- trunk/WebKit/gtk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/gtk/ChangeLog
r30225 r30226 1 2008-02-14 Holger Hans Peter Freyther <holger.freyther@trolltech.com> 2 3 Reviewed by Alp. 4 5 * Make sure that the WebCore::Frame is living as long as the WebKitWebFrame 6 wrapped around it. All current calls to WebCore::Frame from within the 7 WebKitWebFrame are safe, even in the case where the WebCore::Frame is already 8 detached from the WebCore::Page. 9 * For the mainFrame the WebKitWebView is holding the initial reference and 10 will unref on destruction. 11 * For sub-frames the FramerLoaderClientGtk.cpp will do the unrefing when the 12 frame gets detached from the parent. 13 * Make sure FrameLoader::detachFromParent gets called by calling FrameLoader::detachChildren 14 15 * WebCoreSupport/FrameLoaderClientGtk.cpp: 16 (WebKit::FrameLoaderClient::detachedFromParent4): 17 * webkit/webkitprivate.cpp: 18 (WebKit::core): 19 * webkit/webkitprivate.h: 20 * webkit/webkitwebframe.cpp: 21 * webkit/webkitwebview.cpp: 22 1 23 2008-02-14 Holger Hans Peter Freyther <holger.freyther@trolltech.com> 2 24 -
trunk/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
r30223 r30226 453 453 void FrameLoaderClient::detachedFromParent4() 454 454 { 455 notImplemented(); 455 ASSERT(m_frame); 456 g_object_unref(m_frame); 457 m_frame = 0; 456 458 } 457 459 -
trunk/WebKit/gtk/webkit/webkitprivate.cpp
r29985 r30226 50 50 51 51 WebKitWebFramePrivate* priv = frame->priv; 52 return priv ? priv->coreFrame : 0;52 return priv ? priv->coreFrame.get() : 0; 53 53 } 54 54 -
trunk/WebKit/gtk/webkit/webkitprivate.h
r30223 r30226 90 90 typedef struct _WebKitWebFramePrivate WebKitWebFramePrivate; 91 91 struct _WebKitWebFramePrivate { 92 W ebCore::Frame*coreFrame;92 WTF::RefPtr<WebCore::Frame> coreFrame; 93 93 WebCore::FrameLoaderClient* client; 94 94 WebKitWebView* webView; -
trunk/WebKit/gtk/webkit/webkitwebframe.cpp
r30225 r30226 94 94 95 95 priv->coreFrame->loader()->cancelAndClear(); 96 priv->coreFrame = 0; 97 96 98 g_free(priv->name); 97 99 g_free(priv->title); … … 217 219 priv->coreFrame = new Frame(viewPriv->corePage, 0, priv->client); 218 220 219 FrameView* frameView = new FrameView(priv->coreFrame );221 FrameView* frameView = new FrameView(priv->coreFrame.get()); 220 222 frameView->setContainingWindow(GTK_CONTAINER(webView)); 221 223 frameView->setGtkAdjustments(GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)), … … 238 240 priv->coreFrame = new Frame(viewPriv->corePage, element, priv->client); 239 241 240 FrameView* frameView = new FrameView(priv->coreFrame );242 FrameView* frameView = new FrameView(priv->coreFrame.get()); 241 243 frameView->setContainingWindow(GTK_CONTAINER(webView)); 242 244 priv->coreFrame->setView(frameView); -
trunk/WebKit/gtk/webkit/webkitwebview.cpp
r30201 r30226 613 613 webkit_web_view_stop_loading(WEBKIT_WEB_VIEW(object)); 614 614 615 core(priv->mainFrame)->loader()->detachChildren(); 615 616 delete priv->corePage; 616 617
Note:
See TracChangeset
for help on using the changeset viewer.