mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 02:05:42 +00:00
Bug 1127270: Only acquire a hold on the compositor thread once the channel for a parent actor has been succesfully connected. r=nical
This commit is contained in:
parent
47268649ef
commit
9fcfcb0de7
@ -1636,7 +1636,6 @@ class CrossProcessCompositorParent final : public PCompositorParent,
|
||||
public:
|
||||
explicit CrossProcessCompositorParent(Transport* aTransport)
|
||||
: mTransport(aTransport)
|
||||
, mCompositorThreadHolder(sCompositorThreadHolder)
|
||||
, mNotifyAfterRemotePaint(false)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
@ -1726,6 +1725,8 @@ public:
|
||||
TimeStamp& aCompositeStart,
|
||||
TimeStamp& aCompositeEnd);
|
||||
|
||||
protected:
|
||||
void OnChannelConnected(int32_t pid) override { mCompositorThreadHolder = sCompositorThreadHolder; }
|
||||
private:
|
||||
// Private destructor, to discourage deletion outside of Release():
|
||||
virtual ~CrossProcessCompositorParent();
|
||||
|
@ -58,7 +58,6 @@ ImageBridgeParent::ImageBridgeParent(MessageLoop* aLoop,
|
||||
: mMessageLoop(aLoop)
|
||||
, mTransport(aTransport)
|
||||
, mSetChildThreadPriority(false)
|
||||
, mCompositorThreadHolder(GetCompositorThreadHolder())
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
sMainLoop = MessageLoop::current();
|
||||
@ -385,6 +384,12 @@ ImageBridgeParent::CloneToplevel(const InfallibleTArray<ProtocolFdMapping>& aFds
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void
|
||||
ImageBridgeParent::OnChannelConnected(int32_t aPid)
|
||||
{
|
||||
mCompositorThreadHolder = GetCompositorThreadHolder();
|
||||
}
|
||||
|
||||
bool ImageBridgeParent::IsSameProcess() const
|
||||
{
|
||||
return OtherPid() == base::GetCurrentProcId();
|
||||
|
@ -151,6 +151,9 @@ public:
|
||||
base::ProcessHandle aPeerProcess,
|
||||
mozilla::ipc::ProtocolCloneContext* aCtx) override;
|
||||
|
||||
protected:
|
||||
void OnChannelConnected(int32_t pid) override;
|
||||
|
||||
private:
|
||||
void DeferredDestroy();
|
||||
MessageLoop* mMessageLoop;
|
||||
|
Loading…
Reference in New Issue
Block a user