mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 10:44:56 +00:00
Bug 1538353 - Part 1: Add a SetEventTargetForRoute helper to allow setting EventTargets for Endpoint-constructed actors, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D24566 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
f1bca69405
commit
c20d338fe9
@ -521,6 +521,11 @@ void IProtocol::ReplaceEventTargetForActor(IProtocol* aActor,
|
||||
mState->ReplaceEventTargetForActor(aActor, aEventTarget);
|
||||
}
|
||||
|
||||
void IProtocol::SetEventTargetForRoute(int32_t aRoute,
|
||||
nsIEventTarget* aEventTarget) {
|
||||
mState->SetEventTargetForRoute(aRoute, aEventTarget);
|
||||
}
|
||||
|
||||
nsIEventTarget* IProtocol::GetActorEventTarget() {
|
||||
return mState->GetActorEventTarget();
|
||||
}
|
||||
@ -551,6 +556,11 @@ void IProtocol::ManagedState::ReplaceEventTargetForActor(
|
||||
mProtocol->Manager()->ReplaceEventTargetForActor(aActor, aEventTarget);
|
||||
}
|
||||
|
||||
void IProtocol::ManagedState::SetEventTargetForRoute(
|
||||
int32_t aRoute, nsIEventTarget* aEventTarget) {
|
||||
mProtocol->Manager()->SetEventTargetForRoute(aRoute, aEventTarget);
|
||||
}
|
||||
|
||||
already_AddRefed<nsIEventTarget> IProtocol::ManagedState::GetActorEventTarget(
|
||||
IProtocol* aActor) {
|
||||
return mProtocol->Manager()->GetActorEventTarget(aActor);
|
||||
@ -905,6 +915,16 @@ void IToplevelProtocol::ToplevelState::ReplaceEventTargetForActor(
|
||||
mEventTargetMap.ReplaceWithID(aEventTarget, id);
|
||||
}
|
||||
|
||||
void IToplevelProtocol::ToplevelState::SetEventTargetForRoute(
|
||||
int32_t aRoute, nsIEventTarget* aEventTarget) {
|
||||
MOZ_RELEASE_ASSERT(aRoute != mProtocol->Id());
|
||||
MOZ_RELEASE_ASSERT(aRoute != kNullActorId && aRoute != kFreedActorId);
|
||||
|
||||
MutexAutoLock lock(mEventTargetMutex);
|
||||
MOZ_ASSERT(!mEventTargetMap.Lookup(aRoute));
|
||||
mEventTargetMap.AddWithID(aEventTarget, aRoute);
|
||||
}
|
||||
|
||||
const MessageChannel* IToplevelProtocol::ToplevelState::GetIPCChannel() const {
|
||||
return ProtocolState::mChannel ? ProtocolState::mChannel : &mChannel;
|
||||
}
|
||||
|
@ -184,6 +184,8 @@ class IProtocol : public HasResultCodes {
|
||||
nsIEventTarget* aEventTarget) = 0;
|
||||
virtual void ReplaceEventTargetForActor(IProtocol* aActor,
|
||||
nsIEventTarget* aEventTarget) = 0;
|
||||
virtual void SetEventTargetForRoute(int32_t aRoute,
|
||||
nsIEventTarget* aEventTarget) = 0;
|
||||
|
||||
virtual already_AddRefed<nsIEventTarget> GetActorEventTarget(
|
||||
IProtocol* aActor) = 0;
|
||||
@ -226,6 +228,8 @@ class IProtocol : public HasResultCodes {
|
||||
nsIEventTarget* aEventTarget) override;
|
||||
void ReplaceEventTargetForActor(IProtocol* aActor,
|
||||
nsIEventTarget* aEventTarget) override;
|
||||
void SetEventTargetForRoute(int32_t aRoute,
|
||||
nsIEventTarget* aEventTarget) override;
|
||||
already_AddRefed<nsIEventTarget> GetActorEventTarget(
|
||||
IProtocol* aActor) override;
|
||||
|
||||
@ -321,6 +325,8 @@ class IProtocol : public HasResultCodes {
|
||||
void ReplaceEventTargetForActor(IProtocol* aActor,
|
||||
nsIEventTarget* aEventTarget);
|
||||
|
||||
void SetEventTargetForRoute(int32_t aRoute, nsIEventTarget* aEventTarget);
|
||||
|
||||
nsIEventTarget* GetActorEventTarget();
|
||||
already_AddRefed<nsIEventTarget> GetActorEventTarget(IProtocol* aActor);
|
||||
|
||||
@ -427,6 +433,8 @@ class IToplevelProtocol : public IProtocol {
|
||||
nsIEventTarget* aEventTarget) override;
|
||||
void ReplaceEventTargetForActor(IProtocol* aActor,
|
||||
nsIEventTarget* aEventTarget) override;
|
||||
void SetEventTargetForRoute(int32_t aRoute,
|
||||
nsIEventTarget* aEventTarget) override;
|
||||
already_AddRefed<nsIEventTarget> GetActorEventTarget(
|
||||
IProtocol* aActor) override;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user