⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 109370 in webkit


Ignore:
Timestamp:
Mar 1, 2012, 11:01:14 AM (15 years ago)
Author:
abarth@webkit.org
Message:

Unreviewed, rolling out r109336.
​http://trac.webkit.org/changeset/109336
​https://bugs.webkit.org/show_bug.cgi?id=80013

It's causing some crashes

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
(WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):

  • Modules/indexeddb/DOMWindowIndexedDatabase.h:

(DOMWindowIndexedDatabase):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::~DOMWindow):
(WebCore::DOMWindow::clear):
(WebCore):
(WebCore::DOMWindow::setIDBFactory):

  • page/DOMWindow.h:

(DOMWindow):
(WebCore::DOMWindow::idbFactory):

Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r109369 r109370  
     12012-03-01  Adam Barth  <abarth@webkit.org>
     2
     3        Unreviewed, rolling out r109336.
     4        http://trac.webkit.org/changeset/109336
     5        https://bugs.webkit.org/show_bug.cgi?id=80013
     6
     7        It's causing some crashes
     8
     9        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
     10        (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
     11        (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
     12        * Modules/indexeddb/DOMWindowIndexedDatabase.h:
     13        (DOMWindowIndexedDatabase):
     14        * page/DOMWindow.cpp:
     15        (WebCore::DOMWindow::~DOMWindow):
     16        (WebCore::DOMWindow::clear):
     17        (WebCore):
     18        (WebCore::DOMWindow::setIDBFactory):
     19        * page/DOMWindow.h:
     20        (DOMWindow):
     21        (WebCore::DOMWindow::idbFactory):
     22
    1232012-03-01  Tom Sepez  <tsepez@chromium.org>
    224
  • trunk/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.cpp

    r109336 r109370  
    3838namespace WebCore {
    3939
    40 DOMWindowIndexedDatabase::DOMWindowIndexedDatabase(DOMWindow* window)
    41     : DOMWindowProperty(window->frame())
    42     , m_window(window)
     40DOMWindowIndexedDatabase::DOMWindowIndexedDatabase()
    4341{
    4442}
    … …  
    4846}
    4947
    50 DOMWindowIndexedDatabase* DOMWindowIndexedDatabase::from(DOMWindow* window)
    51 {
    52     DEFINE_STATIC_LOCAL(AtomicString, name, ("DOMWindowIndexedDatabase"));
    53     DOMWindowIndexedDatabase* supplement = static_cast<DOMWindowIndexedDatabase*>(Supplement<DOMWindow>::from(window, name));
    54     if (!supplement) {
    55         supplement = new DOMWindowIndexedDatabase(window);
    56         provideTo(window, name, adoptPtr(supplement));
    57     }
    58     return supplement;
    59 }
    60 
    61 void DOMWindowIndexedDatabase::disconnectFrame()
    62 {
    63     m_idbFactory = 0;
    64 }
    65 
    6648IDBFactory* DOMWindowIndexedDatabase::webkitIndexedDB(DOMWindow* window)
    6749{
    68     return from(window)->webkitIndexedDB();
    69 }
    70 
    71 IDBFactory* DOMWindowIndexedDatabase::webkitIndexedDB()
    72 {
    73     Document* document = m_window->document();
     50    Document* document = window->document();
    7451    if (!document)
    7552        return 0;
    … …  
    8259        return 0;
    8360
    84     if (!m_idbFactory && m_window->isCurrentlyDisplayedInFrame())
    85         m_idbFactory = IDBFactory::create(page->group().idbFactory());
    86     return m_idbFactory.get();
     61    if (!window->idbFactory() && window->isCurrentlyDisplayedInFrame())
     62        window->setIDBFactory(IDBFactory::create(page->group().idbFactory()));
     63    return window->idbFactory();
    8764}
    8865
  • trunk/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.h

    r109336 r109370  
    2929#if ENABLE(INDEXED_DATABASE)
    3030
    31 #include "DOMWindowProperty.h"
    32 #include "Supplementable.h"
    33 
    3431namespace WebCore {
    3532
    … …  
    3734class DOMWindow;
    3835
    39 class DOMWindowIndexedDatabase : public DOMWindowProperty, public Supplement<DOMWindow> {
     36class DOMWindowIndexedDatabase {
    4037public:
    41     virtual ~DOMWindowIndexedDatabase();
    42     static DOMWindowIndexedDatabase* from(DOMWindow*);
    43 
    4438    static IDBFactory* webkitIndexedDB(DOMWindow*);
    4539
    46     virtual void disconnectFrame() OVERRIDE;
    47 
    4840private:
    49     explicit DOMWindowIndexedDatabase(DOMWindow*);
    50 
    51     IDBFactory* webkitIndexedDB();
    52 
    53     DOMWindow* m_window;
    54     RefPtr<IDBFactory> m_idbFactory;
     41    DOMWindowIndexedDatabase();
     42    ~DOMWindowIndexedDatabase();
    5543};
    5644
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r109336 r109370  
    421421    ASSERT(!m_notifications);
    422422#endif
     423#if ENABLE(INDEXED_DATABASE)
     424    ASSERT(!m_idbFactory);
     425#endif
    423426#if ENABLE(BLOB)
    424427    ASSERT(!m_domURL);
    … …  
    529532    resetNotifications();
    530533#endif
     534#if ENABLE(INDEXED_DATABASE)
     535    m_idbFactory = 0;
     536#endif
    531537#if ENABLE(BLOB)
    532538    m_domURL = 0;
    … …  
    732738    m_notifications->disconnectFrame();
    733739    m_notifications = 0;
     740}
     741#endif
     742
     743#if ENABLE(INDEXED_DATABASE)
     744void DOMWindow::setIDBFactory(PassRefPtr<IDBFactory> idbFactory)
     745{
     746    m_idbFactory = idbFactory;
    734747}
    735748#endif
  • trunk/Source/WebCore/page/DOMWindow.h

    r109336 r109370  
    3131#include "FrameDestructionObserver.h"
    3232#include "KURL.h"
    33 #include "Supplementable.h"
    3433
    3534namespace WebCore {
    … …  
    8281    enum SetLocationLocking { LockHistoryBasedOnGestureState, LockHistoryAndBackForwardList };
    8382
    84     class DOMWindow : public RefCounted<DOMWindow>, public EventTarget, public FrameDestructionObserver, public Supplementable<DOMWindow> {
     83    class DOMWindow : public RefCounted<DOMWindow>, public EventTarget, public FrameDestructionObserver {
    8584    public:
    8685        static PassRefPtr<DOMWindow> create(Frame* frame) { return adoptRef(new DOMWindow(frame)); }
    … …  
    395394        bool isCurrentlyDisplayedInFrame() const;
    396395
     396#if ENABLE(INDEXED_DATABASE)
     397        IDBFactory* idbFactory() { return m_idbFactory.get(); }
     398        void setIDBFactory(PassRefPtr<IDBFactory>);
     399#endif
     400
    397401    private:
    398402        explicit DOMWindow(Frame*);
    … …  
    442446        mutable RefPtr<Storage> m_sessionStorage;
    443447        mutable RefPtr<Storage> m_localStorage;
     448
     449#if ENABLE(INDEXED_DATABASE)
     450        mutable RefPtr<IDBFactory> m_idbFactory;
     451#endif
     452
    444453        mutable RefPtr<DOMApplicationCache> m_applicationCache;
    445454
Note: See TracChangeset for help on using the changeset viewer.