Changeset 45162 in webkit


Ignore:
Timestamp:
Jun 25, 2009 1:19:46 AM (15 years ago)
Author:
eric@webkit.org
Message:

2009-06-25 Eric Seidel <eric@webkit.org>

No review, reverting r45144 only.

Roll out r45144 after 18 test failures appeared on the bots.
https://bugs.webkit.org/show_bug.cgi?id=26698

  • GNUmakefile.am:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • storage/LocalStorage.cpp: (WebCore::LocalStorage::storageArea):
  • storage/LocalStorage.h:
  • storage/SessionStorage.cpp: (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea):
  • storage/SessionStorage.h:
  • storage/StorageArea.cpp: (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::~StorageArea): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::clear):
  • storage/StorageArea.h:
  • storage/StorageAreaSync.cpp: (WebCore::StorageAreaSync::StorageAreaSync): (WebCore::StorageAreaSync::scheduleFinalSync): (WebCore::StorageAreaSync::syncTimerFired): (WebCore::StorageAreaSync::performImport):
  • storage/StorageAreaSync.h:
  • storage/StorageSyncManager.h:
Location:
trunk/WebCore
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r45144 r45162  
     12009-06-25  Eric Seidel  <eric@webkit.org>
     2
     3        No review, reverting r45144 only.
     4
     5        Roll out r45144 after 18 test failures appeared on the bots.
     6        https://bugs.webkit.org/show_bug.cgi?id=26698
     7
     8        * GNUmakefile.am:
     9        * WebCore.vcproj/WebCore.vcproj:
     10        * WebCore.xcodeproj/project.pbxproj:
     11        * WebCoreSources.bkl:
     12        * storage/LocalStorage.cpp:
     13        (WebCore::LocalStorage::storageArea):
     14        * storage/LocalStorage.h:
     15        * storage/SessionStorage.cpp:
     16        (WebCore::SessionStorage::copy):
     17        (WebCore::SessionStorage::storageArea):
     18        * storage/SessionStorage.h:
     19        * storage/StorageArea.cpp:
     20        (WebCore::StorageArea::StorageArea):
     21        (WebCore::StorageArea::~StorageArea):
     22        (WebCore::StorageArea::setItem):
     23        (WebCore::StorageArea::removeItem):
     24        (WebCore::StorageArea::clear):
     25        * storage/StorageArea.h:
     26        * storage/StorageAreaSync.cpp:
     27        (WebCore::StorageAreaSync::StorageAreaSync):
     28        (WebCore::StorageAreaSync::scheduleFinalSync):
     29        (WebCore::StorageAreaSync::syncTimerFired):
     30        (WebCore::StorageAreaSync::performImport):
     31        * storage/StorageAreaSync.h:
     32        * storage/StorageSyncManager.h:
     33
    1342009-06-24  Jeremy Orlow  <jorlow@chromium.org>
    235
  • trunk/WebCore/GNUmakefile.am

    r45144 r45162  
    20882088        WebCore/storage/LocalStorage.cpp \
    20892089        WebCore/storage/LocalStorage.h \
     2090        WebCore/storage/LocalStorageArea.cpp \
     2091        WebCore/storage/LocalStorageArea.h \
    20902092        WebCore/storage/LocalStorageTask.cpp \
    20912093        WebCore/storage/LocalStorageTask.h \
     
    20942096        WebCore/storage/SessionStorage.cpp \
    20952097        WebCore/storage/SessionStorage.h \
     2098        WebCore/storage/SessionStorageArea.cpp \
     2099        WebCore/storage/SessionStorageArea.h \
    20962100        WebCore/storage/Storage.cpp \
    20972101        WebCore/storage/Storage.h \
  • trunk/WebCore/WebCore.vcproj/WebCore.vcproj

    r45144 r45162  
    2999629996                        </File>
    2999729997                        <File
     29998                                RelativePath="..\storage\LocalStorageArea.cpp"
     29999                                >
     30000                        </File>
     30001                        <File
     30002                                RelativePath="..\storage\LocalStorageArea.h"
     30003                                >
     30004                        </File>
     30005                        <File
    2999830006                                RelativePath="..\storage\LocalStorageTask.cpp"
    2999930007                                >
     
    3003330041                        <File
    3003430042                                RelativePath="..\storage\SessionStorage.h"
     30043                                >
     30044                        </File>
     30045                        <File
     30046                                RelativePath="..\storage\SessionStorageArea.cpp"
     30047                                >
     30048                        </File>
     30049                        <File
     30050                                RelativePath="..\storage\SessionStorageArea.h"
    3003530051                                >
    3003630052                        </File>
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r45144 r45162  
    777777                514B3F730C722047000530DF /* FileSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 514B3F720C722047000530DF /* FileSystem.h */; };
    778778                514B3F760C722055000530DF /* FileSystemMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514B3F750C722055000530DF /* FileSystemMac.mm */; };
     779                514B49DB0DB6D6AD001C3770 /* LocalStorageArea.h in Headers */ = {isa = PBXBuildFile; fileRef = 514B49D90DB6D6AD001C3770 /* LocalStorageArea.h */; };
     780                514B49DC0DB6D6AD001C3770 /* LocalStorageArea.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514B49DA0DB6D6AD001C3770 /* LocalStorageArea.cpp */; };
     781                514B49DF0DB6D6B6001C3770 /* SessionStorageArea.h in Headers */ = {isa = PBXBuildFile; fileRef = 514B49DD0DB6D6B6001C3770 /* SessionStorageArea.h */; };
     782                514B49E00DB6D6B6001C3770 /* SessionStorageArea.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514B49DE0DB6D6B6001C3770 /* SessionStorageArea.cpp */; };
    779783                514C76370CE9225E007EF3CD /* JSSQLError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76350CE9225E007EF3CD /* JSSQLError.cpp */; };
    780784                514C76380CE9225E007EF3CD /* JSSQLTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76360CE9225E007EF3CD /* JSSQLTransaction.cpp */; };
     
    57335737                514B3F720C722047000530DF /* FileSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileSystem.h; sourceTree = "<group>"; };
    57345738                514B3F750C722055000530DF /* FileSystemMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileSystemMac.mm; sourceTree = "<group>"; };
     5739                514B49D90DB6D6AD001C3770 /* LocalStorageArea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalStorageArea.h; sourceTree = "<group>"; };
     5740                514B49DA0DB6D6AD001C3770 /* LocalStorageArea.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalStorageArea.cpp; sourceTree = "<group>"; };
     5741                514B49DD0DB6D6B6001C3770 /* SessionStorageArea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SessionStorageArea.h; sourceTree = "<group>"; };
     5742                514B49DE0DB6D6B6001C3770 /* SessionStorageArea.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SessionStorageArea.cpp; sourceTree = "<group>"; };
    57355743                514C76350CE9225E007EF3CD /* JSSQLError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLError.cpp; sourceTree = "<group>"; };
    57365744                514C76360CE9225E007EF3CD /* JSSQLTransaction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLTransaction.cpp; sourceTree = "<group>"; };
     
    96759683                                51BE38260DAEF7DA001085FC /* LocalStorage.cpp */,
    96769684                                51BE38270DAEF7DA001085FC /* LocalStorage.h */,
     9685                                514B49DA0DB6D6AD001C3770 /* LocalStorageArea.cpp */,
     9686                                514B49D90DB6D6AD001C3770 /* LocalStorageArea.h */,
    96779687                                511F23130DC160DA004F0032 /* LocalStorageTask.cpp */,
    96789688                                511F23140DC160DA004F0032 /* LocalStorageTask.h */,
     
    97029712                                51E0BB220DA572A600A9E417 /* SessionStorage.cpp */,
    97039713                                51E0BB210DA572A600A9E417 /* SessionStorage.h */,
     9714                                514B49DE0DB6D6B6001C3770 /* SessionStorageArea.cpp */,
     9715                                514B49DD0DB6D6B6001C3770 /* SessionStorageArea.h */,
    97049716                                51E3F9C50DA059DC00250911 /* Storage.cpp */,
    97059717                                51E3F9C40DA059DC00250911 /* Storage.h */,
     
    1617316185                                06E81ED70AB5D5E900C87837 /* LocalCurrentGraphicsContext.h in Headers */,
    1617416186                                51BE38290DAEF7DA001085FC /* LocalStorage.h in Headers */,
     16187                                514B49DB0DB6D6AD001C3770 /* LocalStorageArea.h in Headers */,
    1617516188                                511F23180DC160DA004F0032 /* LocalStorageTask.h in Headers */,
    1617616189                                511F231A0DC160DA004F0032 /* LocalStorageThread.h in Headers */,
     
    1661216625                                BC7FA6810D1F167900DB22A9 /* SelectorNodeList.h in Headers */,
    1661316626                                51E0BB230DA572A600A9E417 /* SessionStorage.h in Headers */,
     16627                                514B49DF0DB6D6B6001C3770 /* SessionStorageArea.h in Headers */,
    1661416628                                93309E10099E64920056E581 /* SetNodeAttributeCommand.h in Headers */,
    1661516629                                93F1994F08245E59001E9ABC /* Settings.h in Headers */,
     
    1825618270                                06E81EEC0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm in Sources */,
    1825718271                                51BE38280DAEF7DA001085FC /* LocalStorage.cpp in Sources */,
     18272                                514B49DC0DB6D6AD001C3770 /* LocalStorageArea.cpp in Sources */,
    1825818273                                511F23170DC160DA004F0032 /* LocalStorageTask.cpp in Sources */,
    1825918274                                511F23190DC160DA004F0032 /* LocalStorageThread.cpp in Sources */,
     
    1865618671                                BC7FA6820D1F167900DB22A9 /* SelectorNodeList.cpp in Sources */,
    1865718672                                51E0BB240DA572A600A9E417 /* SessionStorage.cpp in Sources */,
     18673                                514B49E00DB6D6B6001C3770 /* SessionStorageArea.cpp in Sources */,
    1865818674                                93309E0F099E64920056E581 /* SetNodeAttributeCommand.cpp in Sources */,
    1865918675                                14C9A5EA0B3D105F005A0232 /* Settings.cpp in Sources */,
  • trunk/WebCore/WebCoreSources.bkl

    r45144 r45162  
    10121012        storage/DatabaseTracker.cpp
    10131013        storage/LocalStorage.cpp
     1014        storage/LocalStorageArea.cpp
    10141015        storage/LocalStorageTask.cpp
    10151016        storage/LocalStorageThread.cpp
     
    10251026        storage/StorageMap.cpp
    10261027        storage/SessionStorage.cpp
     1028        storage/SessionStorageArea.cpp
    10271029        storage/StorageAreaSync.cpp
    10281030        storage/StorageSyncManager.cpp
  • trunk/WebCore/storage/LocalStorage.cpp

    r45144 r45162  
    3434#include "Frame.h"
    3535#include "FrameTree.h"
     36#include "LocalStorageArea.h"
    3637#include "Page.h"
    3738#include "PageGroup.h"
     
    9091    // sync its existance and quota out to disk via an task of type AreaSync
    9192
    92     RefPtr<StorageArea> storageArea;
     93    RefPtr<LocalStorageArea> storageArea;
    9394    if (storageArea = m_storageAreaMap.get(origin))
    9495        return storageArea.release();
    9596
    96     storageArea = StorageArea::createLocalStorage(origin, m_syncManager);
     97    storageArea = LocalStorageArea::create(origin, m_syncManager);
    9798    m_storageAreaMap.set(origin, storageArea);
    9899    return storageArea.release();
  • trunk/WebCore/storage/LocalStorage.h

    r45144 r45162  
    2929#if ENABLE(DOM_STORAGE)
    3030
     31#include "LocalStorageArea.h"
    3132#include "SecurityOriginHash.h"
    3233
     
    5253        LocalStorage(const String& path);
    5354
    54         typedef HashMap<RefPtr<SecurityOrigin>, RefPtr<StorageArea>, SecurityOriginHash> LocalStorageAreaMap;
     55        typedef HashMap<RefPtr<SecurityOrigin>, RefPtr<LocalStorageArea>, SecurityOriginHash> LocalStorageAreaMap;
    5556        LocalStorageAreaMap m_storageAreaMap;
    5657
  • trunk/WebCore/storage/SessionStorage.cpp

    r45144 r45162  
    5757    SessionStorageAreaMap::iterator end = m_storageAreaMap.end();
    5858    for (SessionStorageAreaMap::iterator i = m_storageAreaMap.begin(); i != end; ++i) {
    59         RefPtr<StorageArea> areaCopy = i->second->copy(i->first.get(), newPage);
     59        RefPtr<SessionStorageArea> areaCopy = i->second->copy(i->first.get(), newPage);
    6060        newSession->m_storageAreaMap.set(i->first, areaCopy.release());
    6161    }
     
    6666PassRefPtr<StorageArea> SessionStorage::storageArea(SecurityOrigin* origin)
    6767{
    68     RefPtr<StorageArea> storageArea;
     68    RefPtr<SessionStorageArea> storageArea;
    6969    if (storageArea = m_storageAreaMap.get(origin))
    7070        return storageArea.release();
    7171       
    72     storageArea = StorageArea::createSessionStorage(origin, m_page);
     72    storageArea = SessionStorageArea::create(origin, m_page);
    7373    m_storageAreaMap.set(origin, storageArea);
    7474    return storageArea.release();
  • trunk/WebCore/storage/SessionStorage.h

    r45144 r45162  
    3030
    3131#include "SecurityOriginHash.h"
    32 #include "StorageArea.h"
     32#include "SessionStorageArea.h"
    3333
    3434#include <wtf/HashMap.h>
     
    5757        Page* m_page;
    5858       
    59         typedef HashMap<RefPtr<SecurityOrigin>, RefPtr<StorageArea>, SecurityOriginHash> SessionStorageAreaMap;
     59        typedef HashMap<RefPtr<SecurityOrigin>, RefPtr<SessionStorageArea>, SecurityOriginHash> SessionStorageAreaMap;
    6060        SessionStorageAreaMap m_storageAreaMap;
    6161    };
  • trunk/WebCore/storage/StorageArea.cpp

    r45144 r45162  
    2929#if ENABLE(DOM_STORAGE)
    3030
    31 #include "EventNames.h"
     31#include "CString.h"
    3232#include "ExceptionCode.h"
    3333#include "Frame.h"
    3434#include "Page.h"
    35 #include "PageGroup.h"
    3635#include "SecurityOrigin.h"
    3736#include "Settings.h"
    38 #include "StorageEvent.h"
    39 #include "StorageAreaSync.h"
    4037#include "StorageMap.h"
    41 #include "StorageSyncManager.h"
    4238
    4339namespace WebCore {
    4440
    45 PassRefPtr<StorageArea> StorageArea::createLocalStorage(SecurityOrigin* origin, PassRefPtr<StorageSyncManager> syncManager)
     41StorageArea::StorageArea(SecurityOrigin* origin)
     42    : m_securityOrigin(origin)
     43    , m_storageMap(StorageMap::create())
    4644{
    47     return adoptRef(new StorageArea(origin, syncManager));
    4845}
    4946
    50 StorageArea::StorageArea(SecurityOrigin* origin, PassRefPtr<StorageSyncManager> syncManager)
     47StorageArea::StorageArea(SecurityOrigin* origin, StorageArea* area)
    5148    : m_securityOrigin(origin)
    52     , m_storageMap(StorageMap::create())
    53     , m_storageSyncManager(syncManager)
    54     , m_sessionStoragePage(0)
     49    , m_storageMap(area->m_storageMap)
    5550{
    56     ASSERT(m_securityOrigin);
    57     ASSERT(m_storageMap);
    58 
    59     // FIXME: If there's no backing storage for LocalStorage, the default WebKit behavior should be that of private browsing,
    60     // not silently ignoring it.  https://bugs.webkit.org/show_bug.cgi?id=25894
    61     if (m_storageSyncManager) {
    62         m_storageAreaSync = StorageAreaSync::create(m_storageSyncManager, this);
    63         ASSERT(m_storageAreaSync);
    64     }
    6551}
    6652
    67 PassRefPtr<StorageArea> StorageArea::createSessionStorage(SecurityOrigin* origin, Page* page)
     53StorageArea::~StorageArea()
    6854{
    69     return adoptRef(new StorageArea(origin, page, 0));
    70 }
    71 
    72 PassRefPtr<StorageArea> StorageArea::copy(SecurityOrigin* origin, Page* page)
    73 {
    74     return adoptRef(new StorageArea(origin, page, this));
    75 }
    76 
    77 StorageArea::StorageArea(SecurityOrigin* origin, Page* page, StorageArea* area)
    78     : m_securityOrigin(origin)
    79     , m_storageMap(area->m_storageMap)
    80     , m_sessionStoragePage(page)
    81 {
    82     ASSERT(m_securityOrigin);
    83     ASSERT(m_sessionStoragePage);
    84 
    85     if (!m_storageMap) {
    86         m_storageMap = StorageMap::create();
    87         ASSERT(m_storageMap);
    88     }
    8955}
    9056
     
    139105
    140106    // Only notify the client if an item was actually changed
    141     if (oldValue != value) {
    142         if (m_storageAreaSync)
    143             m_storageAreaSync->scheduleItemForSync(key, value);
    144         dispatchStorageEvent(key, oldValue, value, frame);
    145     }
     107    if (oldValue != value)
     108        itemChanged(key, oldValue, value, frame);
    146109}
    147110
     
    159122
    160123    // Only notify the client if an item was actually removed
    161     if (!oldValue.isNull()) {
    162         if (m_storageAreaSync)
    163             m_storageAreaSync->scheduleItemForSync(key, String());
    164         dispatchStorageEvent(key, oldValue, String(), frame);
    165     }
     124    if (!oldValue.isNull())
     125        itemRemoved(key, oldValue, frame);
    166126}
    167127
     
    175135    m_storageMap = StorageMap::create();
    176136   
    177     if (m_storageAreaSync)
    178         m_storageAreaSync->scheduleClear();
    179     dispatchStorageEvent(String(), String(), String(), frame);
     137    areaCleared(frame);
    180138}
    181139
     
    192150}
    193151
    194 void StorageArea::scheduleFinalSync()
    195 {
    196     if (m_storageAreaSync)
    197         m_storageAreaSync->scheduleFinalSync();
    198 }
    199 
    200 void StorageArea::blockUntilImportComplete() const
    201 {
    202     if (m_storageAreaSync)
    203         m_storageAreaSync->blockUntilImportComplete();
    204 }
    205 
    206 void StorageArea::dispatchStorageEvent(const String& key, const String& oldValue, const String& newValue, Frame* sourceFrame)
    207 {
    208     // We need to copy all relevant frames from every page to a vector since sending the event to one frame might mutate the frame tree
    209     // of any given page in the group or mutate the page group itself.
    210     Vector<RefPtr<Frame> > frames;
    211 
    212     if (m_sessionStoragePage) {
    213         // Send events only to our page.
    214         for (Frame* frame = m_sessionStoragePage->mainFrame(); frame; frame = frame->tree()->traverseNext()) {
    215             if (frame->document()->securityOrigin()->equal(securityOrigin()))
    216                 frames.append(frame);
    217         }
    218        
    219         for (unsigned i = 0; i < frames.size(); ++i)
    220             frames[i]->document()->dispatchWindowEvent(StorageEvent::create(eventNames().storageEvent, key, oldValue, newValue, sourceFrame->document()->documentURI(), sourceFrame->domWindow(), frames[i]->domWindow()->sessionStorage()));
    221     } else {
    222         // FIXME: When can this occur?
    223         Page* page = sourceFrame->page();
    224         if (!page)
    225             return;
    226 
    227         // Send events to every page.
    228         const HashSet<Page*>& pages = page->group().pages();
    229         HashSet<Page*>::const_iterator end = pages.end();
    230         for (HashSet<Page*>::const_iterator it = pages.begin(); it != end; ++it) {
    231             for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext()) {
    232                 if (frame->document()->securityOrigin()->equal(securityOrigin()))
    233                     frames.append(frame);
    234             }
    235         }
    236        
    237         for (unsigned i = 0; i < frames.size(); ++i)
    238             frames[i]->document()->dispatchWindowEvent(StorageEvent::create(eventNames().storageEvent, key, oldValue, newValue, sourceFrame->document()->documentURI(), sourceFrame->domWindow(), frames[i]->domWindow()->localStorage()));
    239     }       
    240 }
    241 
    242152}
    243153
  • trunk/WebCore/storage/StorageArea.h

    r45144 r45162  
    3030
    3131#include "PlatformString.h"
    32 #include "SecurityOrigin.h"
    33 #include "StorageAreaSync.h"
    34 #include "StorageMap.h"
    35 #include "StorageSyncManager.h"
    3632
    3733#include <wtf/Forward.h>
     
    4339
    4440    class Frame;
    45     class Page;
    4641    class SecurityOrigin;
    47     class StorageAreaSync;
    4842    class StorageMap;
    49     class StorageSyncManager;
    5043    typedef int ExceptionCode;
    5144
    5245    class StorageArea : public ThreadSafeShared<StorageArea> {
    5346    public:
    54         static PassRefPtr<StorageArea> createLocalStorage(SecurityOrigin* origin, PassRefPtr<StorageSyncManager> syncManager);
    55         static PassRefPtr<StorageArea> createSessionStorage(SecurityOrigin* origin, Page* page);
    56         PassRefPtr<StorageArea> copy(SecurityOrigin*, Page*);
    57 
     47        virtual ~StorageArea();
     48       
    5849        // The HTML5 DOM Storage API
    5950        unsigned length() const;
     
    6556
    6657        bool contains(const String& key) const;
    67         void scheduleFinalSync();
    6858
    6959        // Could be called from a background thread.
     
    7262
    7363    protected:
    74         StorageArea(SecurityOrigin*, PassRefPtr<StorageSyncManager>);
    75         StorageArea(SecurityOrigin*, Page*);
    76         StorageArea(SecurityOrigin*, Page*, StorageArea*);
     64        StorageArea(SecurityOrigin*);
     65        StorageArea(SecurityOrigin*, StorageArea*);
    7766
    7867    private:
    79         void blockUntilImportComplete() const;
    80 
    81         void dispatchStorageEvent(const String& key, const String& oldValue, const String& newValue, Frame* sourceFrame);
     68        virtual void itemChanged(const String& key, const String& oldValue, const String& newValue, Frame* sourceFrame) = 0;
     69        virtual void itemRemoved(const String& key, const String& oldValue, Frame* sourceFrame) = 0;
     70        virtual void areaCleared(Frame* sourceFrame) = 0;
     71        virtual void blockUntilImportComplete() const = 0;
    8272
    8373        RefPtr<SecurityOrigin> m_securityOrigin;
    8474        RefPtr<StorageMap> m_storageMap;
    85 
    86         RefPtr<StorageAreaSync> m_storageAreaSync;
    87         RefPtr<StorageSyncManager> m_storageSyncManager;
    88         Page* m_sessionStoragePage;  // NULL iff it's LocalStorage
    8975    };
    9076
  • trunk/WebCore/storage/StorageAreaSync.cpp

    r45144 r45162  
    5858{
    5959    ASSERT(m_storageArea);
    60     ASSERT(m_syncManager);
    61 
    62     // FIXME: If it can't import, then the default WebKit behavior should be that of private browsing,
    63     // not silently ignoring it.  https://bugs.webkit.org/show_bug.cgi?id=25894
    64     if (!m_syncManager->scheduleImport(this))
     60    if (!m_syncManager || !m_syncManager->scheduleImport(this))
    6561        m_importComplete = true;
    6662}
     
    7672{
    7773    ASSERT(isMainThread());
     74    if (!m_syncManager)
     75        return;
    7876   
    7977    if (m_syncTimer.isActive())
     
    124122{
    125123    ASSERT(isMainThread());
     124    if (!m_syncManager)
     125        return;
    126126
    127127    HashMap<String, String>::iterator it = m_changedItems.begin();
     
    162162    ASSERT(!isMainThread());
    163163    ASSERT(!m_database.isOpen());
     164    if (!m_syncManager)
     165        return;
    164166
    165167    String databaseFilename = m_syncManager->fullDatabaseFilename(m_storageArea->securityOrigin());
  • trunk/WebCore/storage/StorageAreaSync.h

    r45144 r45162  
    3737namespace WebCore {
    3838
    39     class Frame;
    4039    class StorageArea;   
    4140    class StorageSyncManager;
  • trunk/WebCore/storage/StorageSyncManager.h

    r45144 r45162  
    2929#if ENABLE(DOM_STORAGE)
    3030
     31#include "LocalStorageArea.h"
    3132#include "LocalStorageTask.h"
    3233#include "LocalStorageThread.h"
    33 #include "StorageArea.h"
    3434#include "StorageAreaSync.h"
    3535
Note: See TracChangeset for help on using the changeset viewer.