mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
Bug 1673931
- Hide dependency on EventListenerManager from DOMEventTargetHelper.h. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D96551 Depends on D96550
This commit is contained in:
parent
4e35a182cf
commit
49ca733d11
@ -7,13 +7,12 @@
|
|||||||
#include "nsContentUtils.h"
|
#include "nsContentUtils.h"
|
||||||
#include "mozilla/dom/Document.h"
|
#include "mozilla/dom/Document.h"
|
||||||
#include "mozilla/Sprintf.h"
|
#include "mozilla/Sprintf.h"
|
||||||
#include "nsGlobalWindow.h"
|
|
||||||
#include "mozilla/dom/Event.h"
|
#include "mozilla/dom/Event.h"
|
||||||
#include "mozilla/dom/ScriptSettings.h"
|
|
||||||
#include "mozilla/DOMEventTargetHelper.h"
|
#include "mozilla/DOMEventTargetHelper.h"
|
||||||
#include "mozilla/EventDispatcher.h"
|
#include "mozilla/EventDispatcher.h"
|
||||||
#include "mozilla/EventListenerManager.h"
|
#include "mozilla/EventListenerManager.h"
|
||||||
#include "mozilla/Likely.h"
|
#include "mozilla/Likely.h"
|
||||||
|
#include "MainThreadUtils.h"
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
@ -87,6 +86,42 @@ NS_IMPL_CYCLE_COLLECTING_ADDREF(DOMEventTargetHelper)
|
|||||||
NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_LAST_RELEASE(DOMEventTargetHelper,
|
NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_LAST_RELEASE(DOMEventTargetHelper,
|
||||||
LastRelease())
|
LastRelease())
|
||||||
|
|
||||||
|
DOMEventTargetHelper::DOMEventTargetHelper()
|
||||||
|
: mParentObject(nullptr),
|
||||||
|
mOwnerWindow(nullptr),
|
||||||
|
mHasOrHasHadOwnerWindow(false),
|
||||||
|
mIsKeptAlive(false) {}
|
||||||
|
|
||||||
|
DOMEventTargetHelper::DOMEventTargetHelper(nsPIDOMWindowInner* aWindow)
|
||||||
|
: mParentObject(nullptr),
|
||||||
|
mOwnerWindow(nullptr),
|
||||||
|
mHasOrHasHadOwnerWindow(false),
|
||||||
|
mIsKeptAlive(false) {
|
||||||
|
nsIGlobalObject* global = aWindow ? aWindow->AsGlobal() : nullptr;
|
||||||
|
BindToOwner(global);
|
||||||
|
}
|
||||||
|
|
||||||
|
DOMEventTargetHelper::DOMEventTargetHelper(nsIGlobalObject* aGlobalObject)
|
||||||
|
: mParentObject(nullptr),
|
||||||
|
mOwnerWindow(nullptr),
|
||||||
|
mHasOrHasHadOwnerWindow(false),
|
||||||
|
mIsKeptAlive(false) {
|
||||||
|
BindToOwner(aGlobalObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
DOMEventTargetHelper::DOMEventTargetHelper(DOMEventTargetHelper* aOther)
|
||||||
|
: mParentObject(nullptr),
|
||||||
|
mOwnerWindow(nullptr),
|
||||||
|
mHasOrHasHadOwnerWindow(false),
|
||||||
|
mIsKeptAlive(false) {
|
||||||
|
if (!aOther) {
|
||||||
|
BindToOwner(static_cast<nsIGlobalObject*>(nullptr));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BindToOwner(aOther->GetParentObject());
|
||||||
|
mHasOrHasHadOwnerWindow = aOther->HasOrHasHadOwner();
|
||||||
|
}
|
||||||
|
|
||||||
DOMEventTargetHelper::~DOMEventTargetHelper() {
|
DOMEventTargetHelper::~DOMEventTargetHelper() {
|
||||||
if (mParentObject) {
|
if (mParentObject) {
|
||||||
mParentObject->RemoveEventTargetObject(this);
|
mParentObject->RemoveEventTargetObject(this);
|
||||||
@ -310,4 +345,12 @@ nsresult DOMEventTargetHelper::CheckCurrentGlobalCorrectness() const {
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DOMEventTargetHelper::HasListenersFor(const nsAString& aType) const {
|
||||||
|
return mListenerManager && mListenerManager->HasListenersFor(aType);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DOMEventTargetHelper::HasListenersFor(nsAtom* aTypeWithOn) const {
|
||||||
|
return mListenerManager && mListenerManager->HasListenersFor(aTypeWithOn);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace mozilla
|
} // namespace mozilla
|
||||||
|
@ -7,21 +7,33 @@
|
|||||||
#ifndef mozilla_DOMEventTargetHelper_h_
|
#ifndef mozilla_DOMEventTargetHelper_h_
|
||||||
#define mozilla_DOMEventTargetHelper_h_
|
#define mozilla_DOMEventTargetHelper_h_
|
||||||
|
|
||||||
#include "nsCOMPtr.h"
|
|
||||||
#include "nsGkAtoms.h"
|
|
||||||
#include "nsCycleCollectionParticipant.h"
|
|
||||||
#include "nsPIDOMWindow.h"
|
|
||||||
#include "nsIScriptGlobalObject.h"
|
|
||||||
#include "nsIScriptContext.h"
|
|
||||||
#include "MainThreadUtils.h"
|
|
||||||
#include "mozilla/Attributes.h"
|
#include "mozilla/Attributes.h"
|
||||||
#include "mozilla/EventListenerManager.h"
|
#include "mozilla/dom/BindingDeclarations.h"
|
||||||
#include "mozilla/LinkedList.h"
|
|
||||||
#include "mozilla/dom/EventTarget.h"
|
#include "mozilla/dom/EventTarget.h"
|
||||||
|
#include "mozilla/LinkedList.h"
|
||||||
|
#include "mozilla/RefPtr.h"
|
||||||
|
#include "nsAtom.h"
|
||||||
|
#include "nsCOMPtr.h"
|
||||||
|
#include "nsCycleCollectionParticipant.h"
|
||||||
|
#include "nsDebug.h"
|
||||||
|
#include "nsGkAtoms.h"
|
||||||
|
#include "nsID.h"
|
||||||
|
#include "nsIGlobalObject.h"
|
||||||
|
#include "nsIScriptGlobalObject.h"
|
||||||
|
#include "nsISupports.h"
|
||||||
|
#include "nsISupportsUtils.h"
|
||||||
|
#include "nsPIDOMWindow.h"
|
||||||
|
#include "nsStringFwd.h"
|
||||||
|
#include "nsTArray.h"
|
||||||
|
|
||||||
|
class nsCycleCollectionTraversalCallback;
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
class ErrorResult;
|
class ErrorResult;
|
||||||
|
class EventChainPostVisitor;
|
||||||
|
class EventChainPreVisitor;
|
||||||
|
class EventListenerManager;
|
||||||
|
|
||||||
namespace dom {
|
namespace dom {
|
||||||
class Document;
|
class Document;
|
||||||
@ -38,38 +50,10 @@ class Event;
|
|||||||
class DOMEventTargetHelper : public dom::EventTarget,
|
class DOMEventTargetHelper : public dom::EventTarget,
|
||||||
public LinkedListElement<DOMEventTargetHelper> {
|
public LinkedListElement<DOMEventTargetHelper> {
|
||||||
public:
|
public:
|
||||||
DOMEventTargetHelper()
|
DOMEventTargetHelper();
|
||||||
: mParentObject(nullptr),
|
explicit DOMEventTargetHelper(nsPIDOMWindowInner* aWindow);
|
||||||
mOwnerWindow(nullptr),
|
explicit DOMEventTargetHelper(nsIGlobalObject* aGlobalObject);
|
||||||
mHasOrHasHadOwnerWindow(false),
|
explicit DOMEventTargetHelper(DOMEventTargetHelper* aOther);
|
||||||
mIsKeptAlive(false) {}
|
|
||||||
explicit DOMEventTargetHelper(nsPIDOMWindowInner* aWindow)
|
|
||||||
: mParentObject(nullptr),
|
|
||||||
mOwnerWindow(nullptr),
|
|
||||||
mHasOrHasHadOwnerWindow(false),
|
|
||||||
mIsKeptAlive(false) {
|
|
||||||
nsIGlobalObject* global = aWindow ? aWindow->AsGlobal() : nullptr;
|
|
||||||
BindToOwner(global);
|
|
||||||
}
|
|
||||||
explicit DOMEventTargetHelper(nsIGlobalObject* aGlobalObject)
|
|
||||||
: mParentObject(nullptr),
|
|
||||||
mOwnerWindow(nullptr),
|
|
||||||
mHasOrHasHadOwnerWindow(false),
|
|
||||||
mIsKeptAlive(false) {
|
|
||||||
BindToOwner(aGlobalObject);
|
|
||||||
}
|
|
||||||
explicit DOMEventTargetHelper(DOMEventTargetHelper* aOther)
|
|
||||||
: mParentObject(nullptr),
|
|
||||||
mOwnerWindow(nullptr),
|
|
||||||
mHasOrHasHadOwnerWindow(false),
|
|
||||||
mIsKeptAlive(false) {
|
|
||||||
if (!aOther) {
|
|
||||||
BindToOwner(static_cast<nsIGlobalObject*>(nullptr));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
BindToOwner(aOther->GetParentObject());
|
|
||||||
mHasOrHasHadOwnerWindow = aOther->HasOrHasHadOwner();
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||||
NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS(DOMEventTargetHelper)
|
NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS(DOMEventTargetHelper)
|
||||||
@ -113,13 +97,9 @@ class DOMEventTargetHelper : public dom::EventTarget,
|
|||||||
return static_cast<DOMEventTargetHelper*>(target);
|
return static_cast<DOMEventTargetHelper*>(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HasListenersFor(const nsAString& aType) const {
|
bool HasListenersFor(const nsAString& aType) const;
|
||||||
return mListenerManager && mListenerManager->HasListenersFor(aType);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool HasListenersFor(nsAtom* aTypeWithOn) const {
|
bool HasListenersFor(nsAtom* aTypeWithOn) const;
|
||||||
return mListenerManager && mListenerManager->HasListenersFor(aTypeWithOn);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual nsPIDOMWindowOuter* GetOwnerGlobalForBindingsInternal() override {
|
virtual nsPIDOMWindowOuter* GetOwnerGlobalForBindingsInternal() override {
|
||||||
return nsPIDOMWindowOuter::GetFromCurrentInner(GetOwner());
|
return nsPIDOMWindowOuter::GetFromCurrentInner(GetOwner());
|
||||||
|
Loading…
Reference in New Issue
Block a user