mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1145321 - Disconnect the CacheStorage object from its actor when it gets cycle collected; r=bkelly
This commit is contained in:
parent
ed080a81cf
commit
34784d49cb
19
dom/cache/CacheStorage.cpp
vendored
19
dom/cache/CacheStorage.cpp
vendored
@ -41,8 +41,17 @@ using mozilla::ipc::PrincipalToPrincipalInfo;
|
|||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(mozilla::dom::cache::CacheStorage);
|
NS_IMPL_CYCLE_COLLECTING_ADDREF(mozilla::dom::cache::CacheStorage);
|
||||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(mozilla::dom::cache::CacheStorage);
|
NS_IMPL_CYCLE_COLLECTING_RELEASE(mozilla::dom::cache::CacheStorage);
|
||||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(CacheStorage, mGlobal,
|
NS_IMPL_CYCLE_COLLECTION_CLASS(mozilla::dom::cache::CacheStorage)
|
||||||
mRequestPromises)
|
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(mozilla::dom::cache::CacheStorage)
|
||||||
|
tmp->DisconnectFromActor();
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_UNLINK(mGlobal, mRequestPromises)
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(mozilla::dom::cache::CacheStorage)
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGlobal, mRequestPromises)
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_TRACE_WRAPPERCACHE(mozilla::dom::cache::CacheStorage)
|
||||||
|
|
||||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CacheStorage)
|
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CacheStorage)
|
||||||
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
||||||
@ -524,6 +533,12 @@ CacheStorage::RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CacheStorage::~CacheStorage()
|
CacheStorage::~CacheStorage()
|
||||||
|
{
|
||||||
|
DisconnectFromActor();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CacheStorage::DisconnectFromActor()
|
||||||
{
|
{
|
||||||
NS_ASSERT_OWNINGTHREAD(CacheStorage);
|
NS_ASSERT_OWNINGTHREAD(CacheStorage);
|
||||||
|
|
||||||
|
3
dom/cache/CacheStorage.h
vendored
3
dom/cache/CacheStorage.h
vendored
@ -109,6 +109,9 @@ private:
|
|||||||
const mozilla::ipc::PrincipalInfo& aPrincipalInfo, Feature* aFeature);
|
const mozilla::ipc::PrincipalInfo& aPrincipalInfo, Feature* aFeature);
|
||||||
~CacheStorage();
|
~CacheStorage();
|
||||||
|
|
||||||
|
// Called when we're destroyed or CCed.
|
||||||
|
void DisconnectFromActor();
|
||||||
|
|
||||||
void MaybeRunPendingRequests();
|
void MaybeRunPendingRequests();
|
||||||
|
|
||||||
RequestId AddRequestPromise(Promise* aPromise, ErrorResult& aRv);
|
RequestId AddRequestPromise(Promise* aPromise, ErrorResult& aRv);
|
||||||
|
Loading…
Reference in New Issue
Block a user