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_RELEASE(mozilla::dom::cache::CacheStorage);
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(CacheStorage, mGlobal,
|
||||
mRequestPromises)
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(mozilla::dom::cache::CacheStorage)
|
||||
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_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
||||
@ -524,6 +533,12 @@ CacheStorage::RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue)
|
||||
}
|
||||
|
||||
CacheStorage::~CacheStorage()
|
||||
{
|
||||
DisconnectFromActor();
|
||||
}
|
||||
|
||||
void
|
||||
CacheStorage::DisconnectFromActor()
|
||||
{
|
||||
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);
|
||||
~CacheStorage();
|
||||
|
||||
// Called when we're destroyed or CCed.
|
||||
void DisconnectFromActor();
|
||||
|
||||
void MaybeRunPendingRequests();
|
||||
|
||||
RequestId AddRequestPromise(Promise* aPromise, ErrorResult& aRv);
|
||||
|
Loading…
Reference in New Issue
Block a user