Changeset 73867 in webkit


Ignore:
Timestamp:
Dec 11, 2010 7:42:44 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2010-12-11 Yi Shen <yi.4.shen@nokia.com>

Reviewed by Kenneth Rohde Christiansen.

[Qt] Memory leaks for QWebPageClient
https://bugs.webkit.org/show_bug.cgi?id=50267

Use OwnPtr to solve this memory leak issue.

  • Api/qgraphicswebview.cpp: (QGraphicsWebViewPrivate::overlay): (QGraphicsWebViewPrivate::QWebViewPrivate::pageClient): (QGraphicsWebViewPrivate::syncLayers): (QGraphicsWebViewPrivate::updateResizesToContentsForPage): (QGraphicsWebViewPrivate::_q_scaleChanged): (QGraphicsWebViewPrivate::detachCurrentPage):
  • Api/qwebpage_p.h:
  • Api/qwebview.cpp: (QWebViewPrivate::detachCurrentPage):
  • WebCoreSupport/ChromeClientQt.cpp: (WebCore::ChromeClientQt::platformPageClient):
  • WebCoreSupport/EditorClientQt.cpp: (WebCore::EditorClientQt::setInputMethodState):
  • WebCoreSupport/FrameLoaderClientQt.cpp: (WebCore::FrameLoaderClientQt::createPlugin):
Location:
trunk/WebKit/qt
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/qt/Api/qgraphicswebview.cpp

    r72653 r73867  
    8181        if (!page || !page->d->client)
    8282            return 0;
    83         return static_cast<PageClientQGraphicsWidget*>(page->d->client)->overlay;
    84     }
     83        return pageClient()->overlay;
     84    }
     85
     86    PageClientQGraphicsWidget* pageClient() const
     87    {
     88        return static_cast<WebCore::PageClientQGraphicsWidget*> (page->d->client.get());
     89    }
    8590};
    8691
     
    9398{
    9499#if USE(ACCELERATED_COMPOSITING)
    95     static_cast<PageClientQGraphicsWidget*>(page->d->client)->syncLayers();
     100    pageClient()->syncLayers();
    96101#endif
    97102}
     
    129134{
    130135    ASSERT(page);
    131     static_cast<PageClientQGraphicsWidget*>(page->d->client)->viewResizesToContents = resizesToContents;
     136    pageClient()->viewResizesToContents = resizesToContents;
    132137    if (resizesToContents) {
    133138        // resizes to contents mode requires preferred contents size to be set
     
    157162    if (!page)
    158163        return;
    159     static_cast<PageClientQGraphicsWidget*>(page->d->client)->updateTiledBackingStoreScale();
     164    pageClient()->updateTiledBackingStoreScale();
    160165#endif
    161166}
     
    415420
    416421    page->d->view.clear();
    417 
    418     // The client has always to be deleted.
    419     delete page->d->client;
    420422    page->d->client = 0;
    421423
  • trunk/WebKit/qt/Api/qwebpage.cpp

    r73789 r73867  
    20092009    if (d->client) {
    20102010        if (d->client->isQWidgetClient())
    2011             static_cast<PageClientQWidget*>(d->client)->view = view;
     2011            static_cast<PageClientQWidget*>(d->client.get())->view = view;
    20122012        return;
    20132013    }
  • trunk/WebKit/qt/Api/qwebpage_p.h

    r72726 r73867  
    3636#include "PlatformString.h"
    3737
     38#include <wtf/OwnPtr.h>
    3839#include <wtf/RefPtr.h>
    3940
     
    161162    QWebPage *q;
    162163    WebCore::Page *page;
    163     QWebPageClient* client;
     164    OwnPtr<QWebPageClient> client;
    164165    QPointer<QWebFrame> mainFrame;
    165166
  • trunk/WebKit/qt/Api/qwebview.cpp

    r68517 r73867  
    354354
    355355    if (page->d->client && page->d->client->isQWidgetClient())
    356         delete page->d->client;
    357 
    358     page->d->client = 0;
     356        page->d->client.clear();
     357
     358    page->d->client.release();
    359359
    360360    // if the page was created by us, we own it and need to
  • trunk/WebKit/qt/ChangeLog

    r73865 r73867  
     12010-12-11  Yi Shen  <yi.4.shen@nokia.com>
     2
     3        Reviewed by Kenneth Rohde Christiansen.
     4
     5        [Qt] Memory leaks for QWebPageClient
     6        https://bugs.webkit.org/show_bug.cgi?id=50267
     7
     8        Use OwnPtr to solve this memory leak issue.
     9
     10        * Api/qgraphicswebview.cpp:
     11        (QGraphicsWebViewPrivate::overlay):
     12        (QGraphicsWebViewPrivate::QWebViewPrivate::pageClient):
     13        (QGraphicsWebViewPrivate::syncLayers):
     14        (QGraphicsWebViewPrivate::updateResizesToContentsForPage):
     15        (QGraphicsWebViewPrivate::_q_scaleChanged):
     16        (QGraphicsWebViewPrivate::detachCurrentPage):
     17        * Api/qwebpage_p.h:
     18        * Api/qwebview.cpp:
     19        (QWebViewPrivate::detachCurrentPage):
     20        * WebCoreSupport/ChromeClientQt.cpp:
     21        (WebCore::ChromeClientQt::platformPageClient):
     22        * WebCoreSupport/EditorClientQt.cpp:
     23        (WebCore::EditorClientQt::setInputMethodState):
     24        * WebCoreSupport/FrameLoaderClientQt.cpp:
     25        (WebCore::FrameLoaderClientQt::createPlugin):
     26
    1272010-12-11  Jan Erik Hanssen  <jhanssen@sencha.com>
    228
  • trunk/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp

    r73789 r73867  
    7575#include <qtextdocument.h>
    7676#include <qtooltip.h>
     77#include <wtf/OwnPtr.h>
    7778
    7879namespace WebCore {
     
    454455PlatformPageClient ChromeClientQt::platformPageClient() const
    455456{
    456     return m_webPage->d->client;
     457    return m_webPage->d->client.get();
    457458}
    458459
  • trunk/WebKit/qt/WebCoreSupport/EditorClientQt.cpp

    r73088 r73867  
    5454#include <QUndoStack>
    5555#include <stdio.h>
     56#include <wtf/OwnPtr.h>
    5657
    5758#define methodDebug() qDebug("EditorClientQt: %s", __FUNCTION__);
     
    575576void EditorClientQt::setInputMethodState(bool active)
    576577{
    577     QWebPageClient* webPageClient = m_page->d->client;
     578    QWebPageClient* webPageClient = m_page->d->client.get();
    578579    if (webPageClient) {
    579580        Qt::InputMethodHints hints;
  • trunk/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp

    r73710 r73867  
    8787#include <QStringList>
    8888#include "qwebhistory_p.h"
     89#include <wtf/OwnPtr.h>
    8990
    9091static QMap<unsigned long, QString> dumpAssignedUrls;
     
    15371538#if !OS(SYMBIAN)
    15381539        if (mimeType == "application/x-shockwave-flash") {
    1539             QWebPageClient* client = m_webFrame->page()->d->client;
     1540            QWebPageClient* client = m_webFrame->page()->d->client.get();
    15401541            const bool isQWebView = client && qobject_cast<QWidget*>(client->pluginParent());
    15411542#if defined(MOZ_PLATFORM_MAEMO) && (MOZ_PLATFORM_MAEMO >= 5)
Note: See TracChangeset for help on using the changeset viewer.