mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-26 04:09:50 +00:00
Bug 1809759 - Shutdown FileSystemManager before releasing it; r=dom-storage-reviewers,jesup
Differential Revision: https://phabricator.services.mozilla.com/D166679
This commit is contained in:
parent
988da77e66
commit
7aeb3c3248
10
dom/fs/test/crashtests/1809759.html
Normal file
10
dom/fs/test/crashtests/1809759.html
Normal file
@ -0,0 +1,10 @@
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
document.location.search = '?'
|
||||
let a = self.navigator.storage
|
||||
let xhr = new XMLHttpRequest()
|
||||
xhr.open('POST', 'FOOBAR', false)
|
||||
xhr.send()
|
||||
await a.getDirectory()
|
||||
})
|
||||
</script>
|
@ -3,3 +3,4 @@ defaults skip-if(Android) pref(dom.fs.enabled,true) pref(dom.fs.writable_file_st
|
||||
|
||||
load 1798773.html
|
||||
load 1800470.html
|
||||
load 1809759.html
|
||||
|
@ -730,7 +730,7 @@ StorageManager::StorageManager(nsIGlobalObject* aGlobal) : mOwner(aGlobal) {
|
||||
MOZ_ASSERT(aGlobal);
|
||||
}
|
||||
|
||||
StorageManager::~StorageManager() = default;
|
||||
StorageManager::~StorageManager() { Shutdown(); }
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(StorageManager)
|
||||
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
||||
@ -740,8 +740,16 @@ NS_INTERFACE_MAP_END
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(StorageManager)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(StorageManager)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(StorageManager, mOwner,
|
||||
mFileSystemManager)
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_CLASS(StorageManager)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(StorageManager)
|
||||
tmp->Shutdown();
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOwner)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(StorageManager)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOwner)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mFileSystemManager)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
void StorageManager::Shutdown() {
|
||||
if (mFileSystemManager) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user