Changeset 45679 in webkit


Ignore:
Timestamp:
Jul 9, 2009 3:26:45 PM (15 years ago)
Author:
Beth Dakin
Message:

WebCore:

2009-07-09 Beth Dakin and Jon Honeycutt <Beth Dakin>

Reviewed by Dave Hyatt.

Make Widget RefCounted to fix or make fixable:

<rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
at WebCore::Widget::afterMouseDown() after clicking To Do's close
box
<rdar://problem/6978804> WER #16: Repro Access Violation in
WebCore::PluginView::bindingInstance (1310178023)
-and-
<rdar://problem/6991251> WER #13: Crash in WebKit!
WebCore::PluginView::performRequest+203 (1311461169)

  • loader/EmptyClients.h: (WebCore::EmptyFrameLoaderClient::createPlugin): Changed to return PassRefPtr (WebCore::EmptyFrameLoaderClient::createJavaAppletWidget): Ditto.
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadSubframe): (WebCore::FrameLoader::loadPlugin): Make the widget variable a RefPtr. Use .get() when passing it to RenderPart::setWidget(). (WebCore::FrameLoader::createJavaAppletWidget): Make the widget variable a RefPtr.
  • loader/FrameLoader.h: Changed the return type of createJavaAppletWidget().
  • loader/FrameLoaderClient.h: Change the return types of createPlugin() and createJavaAppletWidget().
  • page/Frame.cpp: (WebCore::Frame::createView): No need to call .get() since setWidget() takes a RefPtr.
  • page/FrameView.cpp: (WebCore::FrameView::layoutIfNeededRecursive): children() now returns a HashSet of RefPtrs.
  • page/FrameView.h: Remove inheritance from RefCounted; we pick this up from ScrollView through Widget.
  • platform/ScrollView.cpp: (WebCore::ScrollView::addChild): addChild() now takes a PassRefPtr and m_children now keeps a HashSet of RefPtrs.
  • platform/ScrollView.h: ScrollView constructor is now protected. (WebCore::ScrollView::children): m_children is now a HashSet of RefPtrs.
  • platform/Scrollbar.h: Remove inheritance from RefCounted; we pick this up from ScrollView through Widget.
  • platform/Widget.h: Inherit from RefCounted. Cleaned up some whitespace. Make m_widget a RefPtr.
  • plugins/PluginView.cpp: (WebCore::PluginView::create): Adopt the PluginView when returning it.
  • plugins/PluginView.h: Changed create() to return a PassRefPtr.
  • rendering/RenderApplet.cpp: Receive result in a RefPtr when calling createJavaAppletWidget().
  • rendering/RenderPart.cpp: (WebCore::RenderPart::setWidget): setWidget() now takes a PassRefPtr. Also removed the manual ref of FrameViews. This is handled by having m_widget be a RefPtr. Removed deleteWidget().
  • rendering/RenderPart.h: Removed override of deleteWidget().
  • rendering/RenderWidget.cpp: (WebCore::RenderWidget::destroy): (WebCore::RenderWidget::setWidget): (WebCore::RenderWidget::paint): (WebCore::RenderWidget::setOverlapTestResult): (WebCore::RenderWidget::updateWidgetPosition): Use .get(). (WebCore::RenderWidget::clearWidget): Don't call deleteWidget(). It was removed.
  • rendering/RenderWidget.h: Removed deleteWidget(). Made m_widget a RefPtr. (WebCore::RenderWidget::widget): Use .get().

WebKit/gtk:

2009-07-09 Beth Dakin and Jon Honeycutt <Beth Dakin>

Reviewed by Dave Hyatt.

Make Widget RefCounted to fix:

<rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
at WebCore::Widget::afterMouseDown() after clicking To Do's close
box
<rdar://problem/6978804> WER #16: Repro Access Violation in
WebCore::PluginView::bindingInstance (1310178023)
-and-
<rdar://problem/6991251> WER #13: Crash in WebKit!
WebCore::PluginView::performRequest+203 (1311461169)

  • WebCoreSupport/FrameLoaderClientGtk.cpp: (WebKit::FrameLoaderClient::createPlugin): (WebKit::FrameLoaderClient::createJavaAppletWidget):
  • WebCoreSupport/FrameLoaderClientGtk.h:

WebKit/mac:

2009-07-09 Beth Dakin and Jon Honeycutt <Beth Dakin>

Reviewed by Dave Hyatt.

Make Widget RefCounted to fix:

<rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
at WebCore::Widget::afterMouseDown() after clicking To Do's close
box
<rdar://problem/6978804> WER #16: Repro Access Violation in
WebCore::PluginView::bindingInstance (1310178023)
-and-
<rdar://problem/6991251> WER #13: Crash in WebKit!
WebCore::PluginView::performRequest+203 (1311461169)

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::createPlugin):

WebKit/qt:

2009-07-09 Beth Dakin <Beth Dakin>

Reviewed by Dave Hyatt.

Make Widget RefCounted to fix:

<rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
at WebCore::Widget::afterMouseDown() after clicking To Do's close
box
<rdar://problem/6978804> WER #16: Repro Access Violation in
WebCore::PluginView::bindingInstance (1310178023)
-and-
<rdar://problem/6991251> WER #13: Crash in WebKit!
WebCore::PluginView::performRequest+203 (1311461169)

  • WebCoreSupport/FrameLoaderClientQt.cpp: (WebCore::FrameLoaderClientQt::createPlugin): (WebCore::FrameLoaderClientQt::createJavaAppletWidget):
  • WebCoreSupport/FrameLoaderClientQt.h:

WebKit/win:

2009-07-09 Beth Dakin and Jon Honeycutt <Beth Dakin>

Reviewed by Dave Hyatt.

Make Widget RefCounted to fix:

<rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
at WebCore::Widget::afterMouseDown() after clicking To Do's close
box
<rdar://problem/6978804> WER #16: Repro Access Violation in
WebCore::PluginView::bindingInstance (1310178023)
-and-
<rdar://problem/6991251> WER #13: Crash in WebKit!
WebCore::PluginView::performRequest+203 (1311461169)

  • WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::createPlugin):
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebFrame.cpp: (WebFrame::createJavaAppletWidget):
  • WebFrame.h:

WebKit/wx:

2009-07-09 Beth Dakin and Jon Honeycutt <Beth Dakin>

Reviewed by Dave Hyatt.

Make Widget RefCounted to fix:

<rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
at WebCore::Widget::afterMouseDown() after clicking To Do's close
box
<rdar://problem/6978804> WER #16: Repro Access Violation in
WebCore::PluginView::bindingInstance (1310178023)
-and-
<rdar://problem/6991251> WER #13: Crash in WebKit!
WebCore::PluginView::performRequest+203 (1311461169)

  • WebKitSupport/FrameLoaderClientWx.cpp: (WebCore::FrameLoaderClientWx::createPlugin): (WebCore::FrameLoaderClientWx::createJavaAppletWidget):
  • WebKitSupport/FrameLoaderClientWx.h:
Location:
trunk
Files:
37 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r45677 r45679  
     12009-07-09  Beth Dakin and Jon Honeycutt <bdakin@apple.com>
     2
     3        Reviewed by Dave Hyatt.
     4
     5        Make Widget RefCounted to fix or make fixable:
     6
     7        <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
     8        at WebCore::Widget::afterMouseDown() after clicking To Do's close
     9        box
     10        <rdar://problem/6978804> WER #16: Repro Access Violation in
     11        WebCore::PluginView::bindingInstance (1310178023)
     12        -and-
     13        <rdar://problem/6991251> WER #13: Crash in WebKit!
     14        WebCore::PluginView::performRequest+203 (1311461169)
     15
     16        * loader/EmptyClients.h:
     17        (WebCore::EmptyFrameLoaderClient::createPlugin):
     18        Changed to return PassRefPtr
     19        (WebCore::EmptyFrameLoaderClient::createJavaAppletWidget):
     20        Ditto.
     21
     22        * loader/FrameLoader.cpp:
     23        (WebCore::FrameLoader::loadSubframe):
     24        (WebCore::FrameLoader::loadPlugin):
     25        Make the widget variable a RefPtr. Use .get() when passing it to
     26        RenderPart::setWidget().
     27        (WebCore::FrameLoader::createJavaAppletWidget):
     28        Make the widget variable a RefPtr.
     29
     30        * loader/FrameLoader.h:
     31        Changed the return type of createJavaAppletWidget().
     32
     33        * loader/FrameLoaderClient.h:
     34        Change the return types of createPlugin() and
     35        createJavaAppletWidget().
     36
     37        * page/Frame.cpp:
     38        (WebCore::Frame::createView):
     39        No need to call .get() since setWidget() takes a RefPtr.
     40
     41        * page/FrameView.cpp:
     42        (WebCore::FrameView::layoutIfNeededRecursive):
     43        children() now returns a HashSet of RefPtrs.
     44
     45        * page/FrameView.h:
     46        Remove inheritance from RefCounted; we pick this up from ScrollView
     47        through Widget.
     48
     49        * platform/ScrollView.cpp:
     50        (WebCore::ScrollView::addChild):
     51        addChild() now takes a PassRefPtr and m_children now keeps a
     52        HashSet of RefPtrs.
     53
     54        * platform/ScrollView.h:
     55        ScrollView constructor is now protected.
     56        (WebCore::ScrollView::children):
     57        m_children is now a HashSet of RefPtrs.
     58
     59        * platform/Scrollbar.h:
     60        Remove inheritance from RefCounted; we pick this up from ScrollView
     61        through Widget.
     62
     63        * platform/Widget.h:
     64        Inherit from RefCounted. Cleaned up some whitespace. Make m_widget
     65        a RefPtr.
     66
     67        * plugins/PluginView.cpp:
     68        (WebCore::PluginView::create):
     69        Adopt the PluginView when returning it.
     70
     71        * plugins/PluginView.h:
     72        Changed create() to return a PassRefPtr.
     73
     74        * rendering/RenderApplet.cpp:
     75        Receive result in a RefPtr when calling createJavaAppletWidget().
     76
     77        * rendering/RenderPart.cpp:
     78        (WebCore::RenderPart::setWidget):
     79        setWidget() now takes a PassRefPtr. Also removed the manual ref of
     80        FrameViews. This is handled by having m_widget be a RefPtr. Removed
     81        deleteWidget().
     82
     83        * rendering/RenderPart.h:
     84        Removed override of deleteWidget().
     85
     86        * rendering/RenderWidget.cpp:
     87        (WebCore::RenderWidget::destroy):
     88        (WebCore::RenderWidget::setWidget):
     89        (WebCore::RenderWidget::paint):
     90        (WebCore::RenderWidget::setOverlapTestResult):
     91        (WebCore::RenderWidget::updateWidgetPosition):
     92        Use .get().
     93        (WebCore::RenderWidget::clearWidget):
     94        Don't call deleteWidget(). It was removed.
     95
     96        * rendering/RenderWidget.h:
     97        Removed deleteWidget(). Made m_widget a RefPtr.
     98        (WebCore::RenderWidget::widget):
     99        Use .get().
     100
    11012009-07-09  Chris Fleizach  <cfleizach@apple.com>
    2102
  • trunk/WebCore/loader/EmptyClients.h

    r45333 r45679  
    271271
    272272    virtual PassRefPtr<Frame> createFrame(const KURL&, const String&, HTMLFrameOwnerElement*, const String&, bool, int, int) { return 0; }
    273     virtual Widget* createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) { return 0; }
    274     virtual Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; }
     273    virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) { return 0; }
     274    virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; }
    275275
    276276    virtual ObjectContentType objectContentType(const KURL&, const String&) { return ObjectContentType(); }
  • trunk/WebCore/loader/FrameLoader.cpp

    r45634 r45679  
    16901690    const Vector<String>& paramNames, const Vector<String>& paramValues, bool useFallback)
    16911691{
    1692     Widget* widget = 0;
     1692    RefPtr<Widget> widget;
    16931693
    16941694    if (renderer && !useFallback) {
     
    50705070}
    50715071
    5072 Widget* FrameLoader::createJavaAppletWidget(const IntSize& size, HTMLAppletElement* element, const HashMap<String, String>& args)
     5072PassRefPtr<Widget> FrameLoader::createJavaAppletWidget(const IntSize& size, HTMLAppletElement* element, const HashMap<String, String>& args)
    50735073{
    50745074    String baseURLString;
     
    50985098    KURL baseURL = completeURL(baseURLString);
    50995099
    5100     Widget* widget = m_client->createJavaAppletWidget(size, element, baseURL, paramNames, paramValues);
     5100    RefPtr<Widget> widget = m_client->createJavaAppletWidget(size, element, baseURL, paramNames, paramValues);
    51015101    if (!widget)
    51025102        return 0;
  • trunk/WebCore/loader/FrameLoader.h

    r45634 r45679  
    306306        String userAgent(const KURL&) const;
    307307
    308         Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const HashMap<String, String>& args);
     308        PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const HashMap<String, String>& args);
    309309
    310310        void dispatchWindowObjectAvailable();
  • trunk/WebCore/loader/FrameLoaderClient.h

    r45208 r45679  
    201201        virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement,
    202202                                   const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) = 0;
    203         virtual Widget* createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) = 0;
     203        virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) = 0;
    204204        virtual void redirectDataToPlugin(Widget* pluginWidget) = 0;
    205205       
    206         virtual Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) = 0;
     206        virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) = 0;
    207207
    208208        virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType) = 0;
  • trunk/WebCore/page/Frame.cpp

    r44758 r45679  
    17721772
    17731773    if (ownerRenderer())
    1774         ownerRenderer()->setWidget(frameView.get());
     1774        ownerRenderer()->setWidget(frameView);
    17751775
    17761776    if (HTMLFrameOwnerElement* owner = ownerElement())
  • trunk/WebCore/page/FrameView.cpp

    r45598 r45679  
    14481448        layout();
    14491449
    1450     const HashSet<Widget*>* viewChildren = children();
    1451     HashSet<Widget*>::const_iterator end = viewChildren->end();
    1452     for (HashSet<Widget*>::const_iterator current = viewChildren->begin(); current != end; ++current)
    1453         if ((*current)->isFrameView())
    1454             static_cast<FrameView*>(*current)->layoutIfNeededRecursive();
     1450    const HashSet<RefPtr<Widget> >* viewChildren = children();
     1451    HashSet<RefPtr<Widget> >::const_iterator end = viewChildren->end();
     1452    for (HashSet<RefPtr<Widget> >::const_iterator current = viewChildren->begin(); current != end; ++current) {
     1453        Widget* widget = (*current).get();
     1454        if (widget->isFrameView())
     1455            static_cast<FrameView*>(widget)->layoutIfNeededRecursive();
     1456    }
    14551457
    14561458    // layoutIfNeededRecursive is called when we need to make sure layout is up-to-date before
  • trunk/WebCore/page/FrameView.h

    r45598 r45679  
    4949template <typename T> class Timer;
    5050
    51 class FrameView : public ScrollView, public RefCounted<FrameView> {
     51class FrameView : public ScrollView {
    5252public:
    5353    friend class RenderView;
  • trunk/WebCore/platform/ScrollView.cpp

    r45485 r45679  
    5959}
    6060
    61 void ScrollView::addChild(Widget* child)
    62 {
     61void ScrollView::addChild(PassRefPtr<Widget> prpChild)
     62{
     63    Widget* child = prpChild.get();
    6364    ASSERT(child != this && !child->parent());
    6465    child->setParent(this);
    65     m_children.add(child);
     66    m_children.add(prpChild);
    6667    if (child->platformWidget())
    6768        platformAddChild(child);
     
    710711        return;
    711712
    712     HashSet<Widget*>::const_iterator end = m_children.end();
    713     for (HashSet<Widget*>::const_iterator current = m_children.begin(); current != end; ++current)
     713    HashSet<RefPtr<Widget> >::const_iterator end = m_children.end();
     714    for (HashSet<RefPtr<Widget> >::const_iterator current = m_children.begin(); current != end; ++current)
    714715        (*current)->frameRectsChanged();
    715716}
     
    846847        return;
    847848       
    848     HashSet<Widget*>::iterator end = m_children.end();
    849     for (HashSet<Widget*>::iterator it = m_children.begin(); it != end; ++it)
     849    HashSet<RefPtr<Widget> >::iterator end = m_children.end();
     850    for (HashSet<RefPtr<Widget> >::iterator it = m_children.begin(); it != end; ++it)
    850851        (*it)->setParentVisible(visible);
    851852}
     
    856857        setSelfVisible(true);
    857858        if (isParentVisible()) {
    858             HashSet<Widget*>::iterator end = m_children.end();
    859             for (HashSet<Widget*>::iterator it = m_children.begin(); it != end; ++it)
     859            HashSet<RefPtr<Widget> >::iterator end = m_children.end();
     860            for (HashSet<RefPtr<Widget> >::iterator it = m_children.begin(); it != end; ++it)
    860861                (*it)->setParentVisible(true);
    861862        }
     
    869870    if (isSelfVisible()) {
    870871        if (isParentVisible()) {
    871             HashSet<Widget*>::iterator end = m_children.end();
    872             for (HashSet<Widget*>::iterator it = m_children.begin(); it != end; ++it)
     872            HashSet<RefPtr<Widget> >::iterator end = m_children.end();
     873            for (HashSet<RefPtr<Widget> >::iterator it = m_children.begin(); it != end; ++it)
    873874                (*it)->setParentVisible(false);
    874875        }
  • trunk/WebCore/platform/ScrollView.h

    r45485 r45679  
    5656class ScrollView : public Widget, public ScrollbarClient {
    5757public:
    58     ScrollView();
    5958    ~ScrollView();
    6059
     
    7069
    7170    // Methods for child manipulation and inspection.
    72     const HashSet<Widget*>* children() const { return &m_children; }
    73     void addChild(Widget*);
     71    const HashSet<RefPtr<Widget> >* children() const { return &m_children; }
     72    void addChild(PassRefPtr<Widget>);
    7473    void removeChild(Widget*);
    7574   
     
    228227
    229228protected:
     229    ScrollView();
     230
    230231    virtual void repaintContentRectangle(const IntRect&, bool now = false);
    231232    virtual void paintContents(GraphicsContext*, const IntRect& damageRect) = 0;
     
    245246    bool m_prohibitsScrolling;
    246247
    247     HashSet<Widget*> m_children;
     248    HashSet<RefPtr<Widget> > m_children;
    248249
    249250    // This bool is unused on Mac OS because we directly ask the platform widget
  • trunk/WebCore/platform/Scrollbar.h

    r45478 r45679  
    2727#define Scrollbar_h
    2828
    29 #include <wtf/RefCounted.h>
    3029#include "ScrollTypes.h"
    3130#include "Timer.h"
     
    4645const int cAmountToKeepWhenPaging = 40;
    4746
    48 class Scrollbar : public Widget, public RefCounted<Scrollbar> {
     47class Scrollbar : public Widget {
    4948protected:
    5049    Scrollbar(ScrollbarClient*, ScrollbarOrientation, ScrollbarControlSize, ScrollbarTheme* = 0);
  • trunk/WebCore/platform/Widget.h

    r45478 r45679  
    7474#include "IntSize.h"
    7575
     76#include <wtf/RefCounted.h>
     77
    7678namespace WebCore {
    7779
     
    99101// Plugin - Mac, Windows (windowed only), Qt (windowed only, widget is an HWND on windows), Gtk (windowed only)
    100102//
    101 class Widget {
     103class Widget : public RefCounted<Widget> {
    102104public:
    103105    Widget(PlatformWidget = 0);
    104106    virtual ~Widget();
    105    
     107
    106108    PlatformWidget platformWidget() const { return m_widget; }
    107109    void setPlatformWidget(PlatformWidget widget)
  • trunk/WebCore/plugins/PluginView.cpp

    r43949 r45679  
    667667}
    668668
    669 PluginView* PluginView::create(Frame* parentFrame, const IntSize& size, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
     669PassRefPtr<PluginView> PluginView::create(Frame* parentFrame, const IntSize& size, Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
    670670{
    671671    // if we fail to find a plugin for this MIME type, findPlugin will search for
     
    680680    }
    681681
    682     return new PluginView(parentFrame, size, plugin, element, url, paramNames, paramValues, mimeTypeCopy, loadManually);
     682    return adoptRef(new PluginView(parentFrame, size, plugin, element, url, paramNames, paramValues, mimeTypeCopy, loadManually));
    683683}
    684684
  • trunk/WebCore/plugins/PluginView.h

    r44381 r45679  
    109109    class PluginView : public Widget, private PluginStreamClient, public PluginManualLoader {
    110110    public:
    111         static PluginView* create(Frame* parentFrame, const IntSize&, Element*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually);
     111        static PassRefPtr<PluginView> create(Frame* parentFrame, const IntSize&, Element*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually);
    112112        virtual ~PluginView();
    113113
  • trunk/WebCore/rendering/RenderApplet.cpp

    r44379 r45679  
    2727#include "HTMLNames.h"
    2828#include "HTMLParamElement.h"
     29#include "Widget.h"
    2930
    3031namespace WebCore {
  • trunk/WebCore/rendering/RenderPart.cpp

    r44379 r45679  
    4242}
    4343
    44 void RenderPart::setWidget(Widget* widget)
     44void RenderPart::setWidget(PassRefPtr<Widget> widget)
    4545{
    4646    if (widget == this->widget())
    4747        return;
    4848
    49     if (widget && widget->isFrameView())
    50         static_cast<FrameView*>(widget)->ref();
    5149    RenderWidget::setWidget(widget);
    5250
     
    6058}
    6159
    62 void RenderPart::deleteWidget(Widget* widget)
    63 {
    64     // Since deref ends up calling setWidget back on us, need to make sure
    65     // that widget is already 0 so it won't do any work.
    66     ASSERT(!this->widget());
    67 
    68     if (widget && widget->isFrameView())
    69         static_cast<FrameView*>(widget)->deref();
    70     else
    71         delete widget;
    7260}
    73 
    74 }
  • trunk/WebCore/rendering/RenderPart.h

    r44379 r45679  
    3535    bool hasFallbackContent() const { return m_hasFallbackContent; }
    3636
    37     virtual void setWidget(Widget*);
     37    virtual void setWidget(PassRefPtr<Widget>);
    3838    virtual void viewCleared();
    3939
     
    4444    virtual bool isRenderPart() const { return true; }
    4545    virtual const char* renderName() const { return "RenderPart"; }
    46 
    47     virtual void deleteWidget(Widget*);
    4846};
    4947
  • trunk/WebCore/rendering/RenderWidget.cpp

    r45486 r45679  
    7474    if (m_widget) {
    7575        if (m_frameView)
    76             m_frameView->removeChild(m_widget);
    77         widgetRendererMap().remove(m_widget);
     76            m_frameView->removeChild(m_widget.get());
     77        widgetRendererMap().remove(m_widget.get());
    7878    }
    7979   
     
    114114}
    115115
    116 void RenderWidget::setWidget(Widget* widget)
     116void RenderWidget::setWidget(PassRefPtr<Widget> widget)
    117117{
    118118    if (widget != m_widget) {
    119119        if (m_widget) {
    120120            m_widget->removeFromParent();
    121             widgetRendererMap().remove(m_widget);
     121            widgetRendererMap().remove(m_widget.get());
    122122            clearWidget();
    123123        }
    124124        m_widget = widget;
    125125        if (m_widget) {
    126             widgetRendererMap().add(m_widget, this);
     126            widgetRendererMap().add(m_widget.get(), this);
    127127            // if we've already received a layout, apply the calculated space to the
    128128            // widget immediately, but we have to have really been full constructed (with a non-null
     
    136136                    m_widget->show();
    137137            }
    138             m_frameView->addChild(m_widget);
     138            m_frameView->addChild(m_widget.get());
    139139        }
    140140    }
     
    204204        m_widget->paint(paintInfo.context, paintInfo.rect);
    205205
    206         if (m_widget->isFrameView() && paintInfo.overlapTestRequests && !static_cast<FrameView*>(m_widget)->useSlowRepaints()) {
     206        if (m_widget->isFrameView() && paintInfo.overlapTestRequests && !static_cast<FrameView*>(m_widget.get())->useSlowRepaints()) {
    207207            ASSERT(!paintInfo.overlapTestRequests->contains(this));
    208208            paintInfo.overlapTestRequests->set(this, m_widget->frameRect());
     
    224224    ASSERT(m_widget);
    225225    ASSERT(m_widget->isFrameView());
    226     static_cast<FrameView*>(m_widget)->setIsOverlapped(isOverlapped);
     226    static_cast<FrameView*>(m_widget.get())->setIsOverlapped(isOverlapped);
    227227}
    228228
     
    259259    // content size is wrong) we have to do a layout to set the right widget size
    260260    if (m_widget->isFrameView()) {
    261         FrameView* frameView = static_cast<FrameView*>(m_widget);
     261        FrameView* frameView = static_cast<FrameView*>(m_widget.get());
    262262        if (boundsChanged || frameView->needsLayout())
    263263            frameView->layout();
     
    276276void RenderWidget::clearWidget()
    277277{
    278     Widget* widget = m_widget;
    279278    m_widget = 0;
    280     if (widget)
    281         deleteWidget(widget);
    282 }
    283 
    284 void RenderWidget::deleteWidget(Widget* widget)
    285 {
    286     delete widget;
    287279}
    288280
  • trunk/WebCore/rendering/RenderWidget.h

    r44379 r45679  
    3434    virtual ~RenderWidget();
    3535
    36     Widget* widget() const { return m_widget; }
    37     virtual void setWidget(Widget*);
     36    Widget* widget() const { return m_widget.get(); }
     37    virtual void setWidget(PassRefPtr<Widget>);
    3838
    3939    static RenderWidget* find(const Widget*);
     
    5858    virtual void setSelectionState(SelectionState);
    5959    virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
    60     virtual void deleteWidget(Widget*);
    6160    virtual void setOverlapTestResult(bool);
    6261
     
    6665    void deref(RenderArena*);
    6766
    68     Widget* m_widget;
     67    RefPtr<Widget> m_widget;
    6968    FrameView* m_frameView;
    7069    int m_refCount;
  • trunk/WebKit/gtk/ChangeLog

    r45558 r45679  
     12009-07-09  Beth Dakin and Jon Honeycutt <bdakin@apple.com>
     2
     3        Reviewed by Dave Hyatt.
     4
     5        Make Widget RefCounted to fix:
     6
     7        <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
     8        at WebCore::Widget::afterMouseDown() after clicking To Do's close
     9        box
     10        <rdar://problem/6978804> WER #16: Repro Access Violation in
     11        WebCore::PluginView::bindingInstance (1310178023)
     12        -and-
     13        <rdar://problem/6991251> WER #13: Crash in WebKit!
     14        WebCore::PluginView::performRequest+203 (1311461169)
     15
     16        * WebCoreSupport/FrameLoaderClientGtk.cpp:
     17        (WebKit::FrameLoaderClient::createPlugin):
     18        (WebKit::FrameLoaderClient::createJavaAppletWidget):
     19        * WebCoreSupport/FrameLoaderClientGtk.h:
     20
    1212009-07-06  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
    222
  • trunk/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp

    r45531 r45679  
    372372}
    373373
    374 Widget* FrameLoaderClient::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
     374PassRefPtr<Widget> FrameLoaderClient::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
    375375{
    376376    /* Check if we want to embed a GtkWidget, fallback to plugins later */
     
    390390                          mimeTypeString.data(), urlString.data(), hash.get(), &gtkWidget);
    391391    if (gtkWidget)
    392         return new GtkPluginWidget(gtkWidget);
    393 
    394     PluginView* pluginView = PluginView::create(core(m_frame), pluginSize, element, url, paramNames, paramValues, mimeType, loadManually);
     392        return adoptRef(new GtkPluginWidget(gtkWidget));
     393
     394    RefPtr<PluginView> pluginView = PluginView::create(core(m_frame), pluginSize, element, url, paramNames, paramValues, mimeType, loadManually);
    395395
    396396    if (pluginView->status() == PluginStatusLoadedSuccessfully)
     
    434434}
    435435
    436 Widget* FrameLoaderClient::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL,
     436PassRefPtr<Widget> FrameLoaderClient::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL,
    437437                                                  const Vector<String>& paramNames, const Vector<String>& paramValues)
    438438{
  • trunk/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h

    r45531 r45679  
    111111        virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WebCore::String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
    112112                                   const WebCore::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
    113         virtual WebCore::Widget* createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const WTF::Vector<WebCore::String>&, const WTF::Vector<WebCore::String>&, const WebCore::String&, bool);
     113        virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const WTF::Vector<WebCore::String>&, const WTF::Vector<WebCore::String>&, const WebCore::String&, bool);
    114114        virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
    115         virtual WebCore::Widget* createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues);
     115        virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const WTF::Vector<WebCore::String>& paramNames, const WTF::Vector<WebCore::String>& paramValues);
    116116        virtual WebCore::String overrideMediaType() const;
    117117        virtual void windowObjectCleared();
  • trunk/WebKit/mac/ChangeLog

    r45678 r45679  
     12009-07-09  Beth Dakin and Jon Honeycutt <bdakin@apple.com>
     2
     3        Reviewed by Dave Hyatt.
     4
     5        Make Widget RefCounted to fix:
     6
     7        <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
     8        at WebCore::Widget::afterMouseDown() after clicking To Do's close
     9        box
     10        <rdar://problem/6978804> WER #16: Repro Access Violation in
     11        WebCore::PluginView::bindingInstance (1310178023)
     12        -and-
     13        <rdar://problem/6991251> WER #13: Crash in WebKit!
     14        WebCore::PluginView::performRequest+203 (1311461169)
     15
     16        * WebCoreSupport/WebFrameLoaderClient.h:
     17        * WebCoreSupport/WebFrameLoaderClient.mm:
     18        (WebFrameLoaderClient::createPlugin):
     19
    1202009-07-09  Sam Weinig  <sam@webkit.org>
    221
  • trunk/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h

    r43113 r45679  
    179179    virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WebCore::String& name, WebCore::HTMLFrameOwnerElement*,
    180180                                        const WebCore::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
    181     virtual WebCore::Widget* createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WebCore::String>&,
     181    virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WebCore::String>&,
    182182                                          const Vector<WebCore::String>&, const WebCore::String&, bool);
    183183    virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
    184184   
    185     virtual WebCore::Widget* createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL,
     185    virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL,
    186186                                                    const Vector<WebCore::String>& paramNames, const Vector<WebCore::String>& paramValues);
    187187   
  • trunk/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm

    r45675 r45679  
    14051405#endif
    14061406
    1407 Widget* WebFrameLoaderClient::createPlugin(const IntSize& size, HTMLPlugInElement* element, const KURL& url,
     1407PassRefPtr<Widget> WebFrameLoaderClient::createPlugin(const IntSize& size, HTMLPlugInElement* element, const KURL& url,
    14081408    const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
    14091409{
     
    14341434
    14351435        if (view)
    1436             return new PluginWidget(view);
     1436            return adoptRef(new PluginWidget(view));
    14371437    }
    14381438
     
    14841484                element:element] autorelease];
    14851485           
    1486             return new NetscapePluginWidget(pluginView);
     1486            return adoptRef(new NetscapePluginWidget(pluginView));
    14871487        }
    14881488#endif
     
    15061506   
    15071507    ASSERT(view);
    1508     return new PluginWidget(view);
     1508    return adoptRef(new PluginWidget(view));
    15091509
    15101510    END_BLOCK_OBJC_EXCEPTIONS;
     
    15361536}
    15371537   
    1538 Widget* WebFrameLoaderClient::createJavaAppletWidget(const IntSize& size, HTMLAppletElement* element, const KURL& baseURL,
     1538PassRefPtr<Widget> WebFrameLoaderClient::createJavaAppletWidget(const IntSize& size, HTMLAppletElement* element, const KURL& baseURL,
    15391539    const Vector<String>& paramNames, const Vector<String>& paramValues)
    15401540{
     
    15941594
    15951595    ASSERT(view);
    1596     return new PluginWidget(view);
     1596    return adoptRef(new PluginWidget(view));
    15971597
    15981598    END_BLOCK_OBJC_EXCEPTIONS;
    15991599   
    1600     return new PluginWidget;
     1600    return adoptRef(new PluginWidget);
    16011601#else
    16021602    return 0;
  • trunk/WebKit/mac/WebView/WebView.mm

    r45678 r45679  
    16941694    NSView *documentView = [[kit(frameView->frame()) frameView] documentView];
    16951695
    1696     const HashSet<Widget*>* children = frameView->children();
    1697     HashSet<Widget*>::const_iterator end = children->end();
    1698     for (HashSet<Widget*>::const_iterator it = children->begin(); it != end; ++it) {
    1699         Widget* widget = *it;
     1696    const HashSet<RefPtr<Widget> >* children = frameView->children();
     1697    HashSet<RefPtr<Widget> >::const_iterator end = children->end();
     1698    for (HashSet<RefPtr<Widget> >::const_iterator it = children->begin(); it != end; ++it) {
     1699        Widget* widget = (*it).get();
    17001700        if (widget->isFrameView()) {
    17011701            [self _addScrollerDashboardRegionsForFrameView:static_cast<FrameView*>(widget) dashboardRegions:regions];
  • trunk/WebKit/qt/ChangeLog

    r45626 r45679  
     12009-07-09  Beth Dakin  <bdakin@apple.com>
     2
     3        Reviewed by Dave Hyatt.
     4
     5        Make Widget RefCounted to fix:
     6
     7        <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
     8        at WebCore::Widget::afterMouseDown() after clicking To Do's close
     9        box
     10        <rdar://problem/6978804> WER #16: Repro Access Violation in
     11        WebCore::PluginView::bindingInstance (1310178023)
     12        -and-
     13        <rdar://problem/6991251> WER #13: Crash in WebKit!
     14        WebCore::PluginView::performRequest+203 (1311461169)
     15
     16        * WebCoreSupport/FrameLoaderClientQt.cpp:
     17        (WebCore::FrameLoaderClientQt::createPlugin):
     18        (WebCore::FrameLoaderClientQt::createJavaAppletWidget):
     19        * WebCoreSupport/FrameLoaderClientQt.h:
     20
    1212009-07-08  Pradeepto Bhattacharya  <pradeepto@kde.org>
    222
  • trunk/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp

    r45625 r45679  
    10631063};
    10641064
    1065 Widget* FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames,
     1065PassRefPtr<Widget> FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames,
    10661066                                          const Vector<String>& paramValues, const String& mimeType, bool loadManually)
    10671067{
     
    11271127                if (view)
    11281128                    widget->setParent(view);
    1129                 QtPluginWidget* w = new QtPluginWidget();
     1129                RefPtr<QtPluginWidget> w = adoptRef(new QtPluginWidget());
    11301130                w->setPlatformWidget(widget);
    11311131                // Make sure it's invisible until properly placed into the layout
     
    11361136            delete object;
    11371137    } else { // NPAPI Plugins
    1138         PluginView* pluginView = PluginView::create(m_frame, pluginSize, element, url,
     1138        RefPtr<PluginView> pluginView = PluginView::create(m_frame, pluginSize, element, url,
    11391139            paramNames, paramValues, mimeType, loadManually);
    11401140        return pluginView;
     
    11511151}
    11521152
    1153 Widget* FrameLoaderClientQt::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL,
     1153PassRefPtr<Widget> FrameLoaderClientQt::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL,
    11541154                                                    const Vector<String>& paramNames, const Vector<String>& paramValues)
    11551155{
  • trunk/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h

    r45626 r45679  
    186186        virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement,
    187187                                   const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) ;
    188         virtual Widget* createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool);
     188        virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool);
    189189        virtual void redirectDataToPlugin(Widget* pluginWidget);
    190190
    191         virtual Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues);
     191        virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues);
    192192
    193193        virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
  • trunk/WebKit/win/ChangeLog

    r45678 r45679  
     12009-07-09  Beth Dakin and Jon Honeycutt <bdakin@apple.com>
     2
     3        Reviewed by Dave Hyatt.
     4
     5        Make Widget RefCounted to fix:
     6
     7        <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
     8        at WebCore::Widget::afterMouseDown() after clicking To Do's close
     9        box
     10        <rdar://problem/6978804> WER #16: Repro Access Violation in
     11        WebCore::PluginView::bindingInstance (1310178023)
     12        -and-
     13        <rdar://problem/6991251> WER #13: Crash in WebKit!
     14        WebCore::PluginView::performRequest+203 (1311461169)
     15
     16        * WebCoreSupport/WebFrameLoaderClient.cpp:
     17        (WebFrameLoaderClient::createPlugin):
     18        * WebCoreSupport/WebFrameLoaderClient.h:
     19        * WebFrame.cpp:
     20        (WebFrame::createJavaAppletWidget):
     21        * WebFrame.h:
     22
    1232009-07-09  Sam Weinig  <sam@webkit.org>
    224
  • trunk/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp

    r45508 r45679  
    627627}
    628628
    629 Widget* WebFrameLoaderClient::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
     629PassRefPtr<Widget> WebFrameLoaderClient::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
    630630{
    631631    WebView* webView = m_webFrame->webView();
     
    665665
    666666    Frame* frame = core(m_webFrame);
    667     PluginView* pluginView = PluginView::create(frame, pluginSize, element, url, paramNames, paramValues, mimeType, loadManually);
     667    RefPtr<PluginView> pluginView = PluginView::create(frame, pluginSize, element, url, paramNames, paramValues, mimeType, loadManually);
    668668
    669669    if (pluginView->status() == PluginStatusLoadedSuccessfully)
  • trunk/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h

    r43113 r45679  
    103103    virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WebCore::String& name, WebCore::HTMLFrameOwnerElement* ownerElement,
    104104                               const WebCore::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
    105     virtual WebCore::Widget* createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WebCore::String>&, const Vector<WebCore::String>&, const WebCore::String&, bool loadManually);
     105    virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<WebCore::String>&, const Vector<WebCore::String>&, const WebCore::String&, bool loadManually);
    106106    virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget);
    107107
  • trunk/WebKit/win/WebFrame.cpp

    r44791 r45679  
    16111611}
    16121612
    1613 Widget* WebFrame::createJavaAppletWidget(const IntSize& pluginSize, HTMLAppletElement* element, const KURL& /*baseURL*/, const Vector<String>& paramNames, const Vector<String>& paramValues)
    1614 {
    1615     PluginView* pluginView = PluginView::create(core(this), pluginSize, element, KURL(), paramNames, paramValues, "application/x-java-applet", false);
     1613PassRefPtr<Widget> WebFrame::createJavaAppletWidget(const IntSize& pluginSize, HTMLAppletElement* element, const KURL& /*baseURL*/, const Vector<String>& paramNames, const Vector<String>& paramValues)
     1614{
     1615    RefPtr<PluginView> pluginView = PluginView::create(core(this), pluginSize, element, KURL(), paramNames, paramValues, "application/x-java-applet", false);
    16161616
    16171617    // Check if the plugin can be loaded successfully
  • trunk/WebKit/win/WebFrame.h

    r41738 r45679  
    287287    virtual void startDownload(const WebCore::ResourceRequest&);
    288288       
    289     virtual WebCore::Widget* createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<WebCore::String>& paramNames, const Vector<WebCore::String>& paramValues);
     289    virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<WebCore::String>& paramNames, const Vector<WebCore::String>& paramValues);
    290290
    291291    virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WebCore::String& mimeType);
  • trunk/WebKit/wx/ChangeLog

    r44552 r45679  
     12009-07-09  Beth Dakin and Jon Honeycutt <bdakin@apple.com>
     2
     3        Reviewed by Dave Hyatt.
     4
     5        Make Widget RefCounted to fix:
     6
     7        <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
     8        at WebCore::Widget::afterMouseDown() after clicking To Do's close
     9        box
     10        <rdar://problem/6978804> WER #16: Repro Access Violation in
     11        WebCore::PluginView::bindingInstance (1310178023)
     12        -and-
     13        <rdar://problem/6991251> WER #13: Crash in WebKit!
     14        WebCore::PluginView::performRequest+203 (1311461169)
     15
     16        * WebKitSupport/FrameLoaderClientWx.cpp:
     17        (WebCore::FrameLoaderClientWx::createPlugin):
     18        (WebCore::FrameLoaderClientWx::createJavaAppletWidget):
     19        * WebKitSupport/FrameLoaderClientWx.h:
     20
    1212009-06-09  Kevin Ollivier  <kevino@theolliviers.com>
    222
  • trunk/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp

    r44402 r45679  
    811811}
    812812
    813 Widget* FrameLoaderClientWx::createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually)
     813PassRefPtr<Widget> FrameLoaderClientWx::createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually)
    814814{
    815815    notImplemented();
     
    829829}
    830830
    831 Widget* FrameLoaderClientWx::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL,
     831PassRefPtr<Widget> FrameLoaderClientWx::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL,
    832832                                                    const Vector<String>& paramNames, const Vector<String>& paramValues)
    833833{
  • trunk/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h

    r43113 r45679  
    191191        virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement,
    192192                                   const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight);
    193         virtual Widget* createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) ;
     193        virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) ;
    194194        virtual void redirectDataToPlugin(Widget* pluginWidget);
    195195        virtual ResourceError pluginWillHandleLoadError(const ResourceResponse&);
    196196       
    197         virtual Widget* createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues);
     197        virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues);
    198198
    199199        virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
Note: See TracChangeset for help on using the changeset viewer.