mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-12 02:07:33 +09:00
Issue #1990 - Part 5 - Common up the skippability implementations that are basically copy/pastes of the DOMEventTargetHelper one. Mozilla Bug Bug 1333540. Skipped the renamed of various functions, but otherwise a direct port.
This commit is contained in:
parent
9f945d160d
commit
5fd53649bd
7 changed files with 30 additions and 84 deletions
|
|
@ -2087,32 +2087,6 @@ EventSource::UpdateDontKeepAlive()
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CLASS(EventSource)
|
NS_IMPL_CYCLE_COLLECTION_CLASS(EventSource)
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_BEGIN(EventSource)
|
|
||||||
bool isBlack = tmp->IsBlack();
|
|
||||||
if (isBlack || tmp->mKeepingAlive) {
|
|
||||||
if (tmp->mListenerManager) {
|
|
||||||
tmp->mListenerManager->MarkForCC();
|
|
||||||
}
|
|
||||||
if (!isBlack && tmp->PreservingWrapper()) {
|
|
||||||
// This marks the wrapper black.
|
|
||||||
tmp->GetWrapper();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_IN_CC_BEGIN(EventSource)
|
|
||||||
return tmp->IsBlack();
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_IN_CC_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_THIS_BEGIN(EventSource)
|
|
||||||
return tmp->IsBlack();
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_THIS_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(EventSource,
|
|
||||||
DOMEventTargetHelper)
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRACE_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(EventSource,
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(EventSource,
|
||||||
DOMEventTargetHelper)
|
DOMEventTargetHelper)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||||
|
|
@ -2125,6 +2099,12 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(EventSource,
|
||||||
}
|
}
|
||||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||||
|
|
||||||
|
bool
|
||||||
|
EventSource::IsCertainlyAliveForCC() const
|
||||||
|
{
|
||||||
|
return mKeepingAlive;
|
||||||
|
}
|
||||||
|
|
||||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(EventSource)
|
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(EventSource)
|
||||||
NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
|
NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,8 @@ class EventSource final : public DOMEventTargetHelper
|
||||||
friend class EventSourceImpl;
|
friend class EventSourceImpl;
|
||||||
public:
|
public:
|
||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS_INHERITED(
|
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(EventSource, DOMEventTargetHelper)
|
||||||
EventSource, DOMEventTargetHelper)
|
virtual bool IsCertainlyAliveForCC() const override;
|
||||||
|
|
||||||
// EventTarget
|
// EventTarget
|
||||||
void DisconnectFromOwner() override
|
void DisconnectFromOwner() override
|
||||||
|
|
|
||||||
|
|
@ -1402,32 +1402,6 @@ WebSocket::ConstructorCommon(const GlobalObject& aGlobal,
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CLASS(WebSocket)
|
NS_IMPL_CYCLE_COLLECTION_CLASS(WebSocket)
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_BEGIN(WebSocket)
|
|
||||||
bool isBlack = tmp->IsBlack();
|
|
||||||
if (isBlack || tmp->mKeepingAlive) {
|
|
||||||
if (tmp->mListenerManager) {
|
|
||||||
tmp->mListenerManager->MarkForCC();
|
|
||||||
}
|
|
||||||
if (!isBlack && tmp->PreservingWrapper()) {
|
|
||||||
// This marks the wrapper black.
|
|
||||||
tmp->GetWrapper();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_IN_CC_BEGIN(WebSocket)
|
|
||||||
return tmp->IsBlack();
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_IN_CC_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_THIS_BEGIN(WebSocket)
|
|
||||||
return tmp->IsBlack();
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_THIS_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(WebSocket,
|
|
||||||
DOMEventTargetHelper)
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRACE_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(WebSocket,
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(WebSocket,
|
||||||
DOMEventTargetHelper)
|
DOMEventTargetHelper)
|
||||||
if (tmp->mImpl) {
|
if (tmp->mImpl) {
|
||||||
|
|
@ -1444,6 +1418,12 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(WebSocket,
|
||||||
}
|
}
|
||||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||||
|
|
||||||
|
bool
|
||||||
|
WebSocket::IsCertainlyAliveForCC() const
|
||||||
|
{
|
||||||
|
return mKeepingAlive;
|
||||||
|
}
|
||||||
|
|
||||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(WebSocket)
|
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(WebSocket)
|
||||||
NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
|
NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,8 @@ public:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS_INHERITED(
|
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(WebSocket, DOMEventTargetHelper)
|
||||||
WebSocket, DOMEventTargetHelper)
|
virtual bool IsCertainlyAliveForCC() const override;
|
||||||
|
|
||||||
// EventTarget
|
// EventTarget
|
||||||
virtual void EventListenerAdded(nsIAtom* aType) override;
|
virtual void EventListenerAdded(nsIAtom* aType) override;
|
||||||
|
|
|
||||||
|
|
@ -52,11 +52,12 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(DOMEventTargetHelper)
|
||||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_BEGIN(DOMEventTargetHelper)
|
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_BEGIN(DOMEventTargetHelper)
|
||||||
if (tmp->IsBlack() || tmp->IsCertainlyAliveForCC()) {
|
bool isBlack = tmp->IsBlack();
|
||||||
|
if (isBlack || tmp->IsCertainlyAliveForCC()) {
|
||||||
if (tmp->mListenerManager) {
|
if (tmp->mListenerManager) {
|
||||||
tmp->mListenerManager->MarkForCC();
|
tmp->mListenerManager->MarkForCC();
|
||||||
}
|
}
|
||||||
if (!tmp->IsBlack() && tmp->PreservingWrapper()) {
|
if (!isBlack && tmp->PreservingWrapper()) {
|
||||||
// This marks the wrapper black.
|
// This marks the wrapper black.
|
||||||
tmp->GetWrapper();
|
tmp->GetWrapper();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -310,30 +310,7 @@ XMLHttpRequestMainThread::SetRequestObserver(nsIRequestObserver* aObserver)
|
||||||
mRequestObserver = aObserver;
|
mRequestObserver = aObserver;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CLASS(XMLHttpRequestMainThread)
|
NS_IMPL_CYCLE_COLLECTION_CLASS(XMLHttpRequestMainThread)
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_BEGIN(XMLHttpRequestMainThread)
|
|
||||||
bool isBlack = tmp->IsBlack();
|
|
||||||
if (isBlack || tmp->mWaitingForOnStopRequest) {
|
|
||||||
if (tmp->mListenerManager) {
|
|
||||||
tmp->mListenerManager->MarkForCC();
|
|
||||||
}
|
|
||||||
if (!isBlack && tmp->PreservingWrapper()) {
|
|
||||||
// This marks the wrapper black.
|
|
||||||
tmp->GetWrapper();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_IN_CC_BEGIN(XMLHttpRequestMainThread)
|
|
||||||
return tmp->
|
|
||||||
IsBlackAndDoesNotNeedTracing(static_cast<DOMEventTargetHelper*>(tmp));
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_IN_CC_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_THIS_BEGIN(XMLHttpRequestMainThread)
|
|
||||||
return tmp->IsBlack();
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_THIS_END
|
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(XMLHttpRequestMainThread,
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(XMLHttpRequestMainThread,
|
||||||
XMLHttpRequestEventTarget)
|
XMLHttpRequestEventTarget)
|
||||||
|
|
@ -380,6 +357,12 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(XMLHttpRequestMainThread,
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mResultJSON)
|
NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mResultJSON)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRACE_END
|
NS_IMPL_CYCLE_COLLECTION_TRACE_END
|
||||||
|
|
||||||
|
bool
|
||||||
|
XMLHttpRequestMainThread::IsCertainlyAliveForCC() const
|
||||||
|
{
|
||||||
|
return mWaitingForOnStopRequest;
|
||||||
|
}
|
||||||
|
|
||||||
// QueryInterface implementation for XMLHttpRequestMainThread
|
// QueryInterface implementation for XMLHttpRequestMainThread
|
||||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XMLHttpRequestMainThread)
|
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XMLHttpRequestMainThread)
|
||||||
NS_INTERFACE_MAP_ENTRY(nsIXMLHttpRequest)
|
NS_INTERFACE_MAP_ENTRY(nsIXMLHttpRequest)
|
||||||
|
|
|
||||||
|
|
@ -525,8 +525,10 @@ public:
|
||||||
|
|
||||||
void SetRequestObserver(nsIRequestObserver* aObserver);
|
void SetRequestObserver(nsIRequestObserver* aObserver);
|
||||||
|
|
||||||
NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS_INHERITED(XMLHttpRequestMainThread,
|
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(XMLHttpRequestMainThread,
|
||||||
XMLHttpRequest)
|
XMLHttpRequest)
|
||||||
|
virtual bool IsCertainlyAliveForCC() const override;
|
||||||
|
|
||||||
bool AllowUploadProgress();
|
bool AllowUploadProgress();
|
||||||
|
|
||||||
virtual void DisconnectFromOwner() override;
|
virtual void DisconnectFromOwner() override;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue