Changeset 155120 in webkit


Ignore:
Timestamp:
Sep 5, 2013 8:17:33 AM (11 years ago)
Author:
akling@apple.com
Message:

Reverting "Cached Page and Frame don't need to be ref-counted.
<https://webkit.org/b/120758>

This didn't work so well on Qt bots. Will have to take bigger steps
here instead of iterating.

  • history/CachedFrame.h:

(WebCore::CachedFrame::create):

  • history/CachedPage.cpp:

(WebCore::CachedPage::create):

  • history/CachedPage.h:
  • history/HistoryItem.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):

  • loader/FrameLoader.h:
Location:
trunk/Source/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r155119 r155120  
     12013-09-05  Andreas Kling  <akling@apple.com>
     2
     3        Reverting "Cached Page and Frame don't need to be ref-counted.
     4        <https://webkit.org/b/120758>
     5
     6        This didn't work so well on Qt bots. Will have to take bigger steps
     7        here instead of iterating.
     8
     9        * history/CachedFrame.h:
     10        (WebCore::CachedFrame::create):
     11        * history/CachedPage.cpp:
     12        (WebCore::CachedPage::create):
     13        * history/CachedPage.h:
     14        * history/HistoryItem.h:
     15        * loader/FrameLoader.cpp:
     16        (WebCore::FrameLoader::commitProvisionalLoad):
     17        (WebCore::FrameLoader::transitionToCommitted):
     18        * loader/FrameLoader.h:
     19
    1202013-09-04  Anders Carlsson  <andersca@apple.com>
    221
  • trunk/Source/WebCore/history/CachedFrame.h

    r155091 r155120  
    3131#include "ScriptCachedFrameData.h"
    3232#include <wtf/PassOwnPtr.h>
     33#include <wtf/RefCounted.h>
    3334#include <wtf/RefPtr.h>
    3435
     
    6768#endif
    6869   
    69     Vector<OwnPtr<CachedFrame>> m_childFrames;
     70    Vector<RefPtr<CachedFrame>> m_childFrames;
    7071};
    7172
    72 class CachedFrame : private CachedFrameBase {
     73class CachedFrame : public RefCounted<CachedFrame>, private CachedFrameBase {
    7374public:
    74     static PassOwnPtr<CachedFrame> create(Frame& frame) { return adoptPtr(new CachedFrame(frame)); }
     75    static PassRefPtr<CachedFrame> create(Frame& frame) { return adoptRef(new CachedFrame(frame)); }
    7576
    7677    void open();
  • trunk/Source/WebCore/history/CachedPage.cpp

    r155094 r155120  
    4646DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, cachedPageCounter, ("CachedPage"));
    4747
    48 PassOwnPtr<CachedPage> CachedPage::create(Page& page)
     48PassRefPtr<CachedPage> CachedPage::create(Page& page)
    4949{
    50     return adoptPtr(new CachedPage(page));
     50    return adoptRef(new CachedPage(page));
    5151}
    5252
  • trunk/Source/WebCore/history/CachedPage.h

    r155094 r155120  
    2828
    2929#include "CachedFrame.h"
     30#include <wtf/RefCounted.h>
    3031
    3132namespace WebCore {
     
    3536class Page;
    3637
    37 class CachedPage {
     38class CachedPage : public RefCounted<CachedPage> {
    3839public:
    39     static PassOwnPtr<CachedPage> create(Page&);
     40    static PassRefPtr<CachedPage> create(Page&);
    4041    ~CachedPage();
    4142
     
    6768    double m_timeStamp;
    6869    double m_expirationTime;
    69     OwnPtr<CachedFrame> m_cachedMainFrame;
     70    RefPtr<CachedFrame> m_cachedMainFrame;
    7071    bool m_needStyleRecalcForVisitedLinks;
    7172    bool m_needsFullStyleRecalc;
  • trunk/Source/WebCore/history/HistoryItem.h

    r155086 r155120  
    287287    HistoryItem* m_next;
    288288    HistoryItem* m_prev;
    289     OwnPtr<CachedPage> m_cachedPage;
     289    RefPtr<CachedPage> m_cachedPage;
    290290   
    291291#if PLATFORM(MAC)
  • trunk/Source/WebCore/loader/FrameLoader.cpp

    r155094 r155120  
    17001700void FrameLoader::commitProvisionalLoad()
    17011701{
    1702     CachedPage* cachedPage = m_loadingFromCachedPage ? pageCache()->get(history().provisionalItem()) : 0;
     1702    RefPtr<CachedPage> cachedPage = m_loadingFromCachedPage ? pageCache()->get(history().provisionalItem()) : 0;
    17031703    RefPtr<DocumentLoader> pdl = m_provisionalDocumentLoader;
    17041704    Ref<Frame> protect(m_frame);
     
    17441744        pageCache()->remove(history().currentItem());
    17451745
    1746         // Clear out 'cachedPage' right away since it now points to a deleted object.
    1747         cachedPage = nullptr;
    1748 
    17491746        dispatchDidCommitLoad();
    17501747
     
    17561753        checkCompleted();
    17571754    } else {
    1758         if (cachedPage) {
     1755        if (cachedPage)
    17591756            pageCache()->remove(history().currentItem());
    1760 
    1761             // Clear out 'cachedPage' right away since it now points to a deleted object.
    1762             cachedPage = nullptr;
    1763         }
    17641757        didOpenURL();
    17651758    }
     
    17971790}
    17981791
    1799 void FrameLoader::transitionToCommitted(CachedPage* cachedPage)
     1792void FrameLoader::transitionToCommitted(PassRefPtr<CachedPage> cachedPage)
    18001793{
    18011794    ASSERT(m_client.hasWebView());
  • trunk/Source/WebCore/loader/FrameLoader.h

    r155086 r155120  
    309309
    310310    void clearProvisionalLoad();
    311     void transitionToCommitted(CachedPage*);
     311    void transitionToCommitted(PassRefPtr<CachedPage>);
    312312    void frameLoadCompleted();
    313313
Note: See TracChangeset for help on using the changeset viewer.