Don't propagate simulated device resets to child processes. (bug 1245765 part 3, r=mattwoodrow)

This commit is contained in:
David Anderson 2016-02-29 01:53:13 -05:00
parent 8e8a84e06a
commit d88bee95e2
6 changed files with 2 additions and 33 deletions

View File

@ -3254,15 +3254,6 @@ ContentChild::RecvEndDragSession(const bool& aDoneDrag,
return true; return true;
} }
bool
ContentChild::RecvTestGraphicsDeviceReset(const uint32_t& aResetReason)
{
#if defined(XP_WIN)
gfxPlatform::GetPlatform()->TestDeviceReset(DeviceResetReason(aResetReason));
#endif
return true;
}
bool bool
ContentChild::RecvPush(const nsCString& aScope, ContentChild::RecvPush(const nsCString& aScope,
const IPC::Principal& aPrincipal) const IPC::Principal& aPrincipal)

View File

@ -610,8 +610,6 @@ public:
virtual bool RecvGamepadUpdate(const GamepadChangeEvent& aGamepadEvent) override; virtual bool RecvGamepadUpdate(const GamepadChangeEvent& aGamepadEvent) override;
virtual bool RecvTestGraphicsDeviceReset(const uint32_t& aResetReason) override;
private: private:
virtual void ActorDestroy(ActorDestroyReason why) override; virtual void ActorDestroy(ActorDestroyReason why) override;

View File

@ -710,12 +710,6 @@ child:
*/ */
async GamepadUpdate(GamepadChangeEvent aGamepadEvent); async GamepadUpdate(GamepadChangeEvent aGamepadEvent);
/**
* Tell the child that for testing purposes, a graphics device reset has
* occurred.
*/
async TestGraphicsDeviceReset(uint32_t aReason);
/** /**
* Notify the child that presentation receiver has been launched with the * Notify the child that presentation receiver has been launched with the
* correspondent iframe. * correspondent iframe.

View File

@ -635,10 +635,6 @@ public:
return mCompositorBackend; return mCompositorBackend;
} }
// Trigger a test-driven graphics device reset.
virtual void TestDeviceReset(DeviceResetReason aReason)
{}
// Return information on how child processes should initialize graphics // Return information on how child processes should initialize graphics
// devices. Currently this is only used on Windows. // devices. Currently this is only used on Windows.
virtual void GetDeviceInitData(mozilla::gfx::DeviceInitData* aOut); virtual void GetDeviceInitData(mozilla::gfx::DeviceInitData* aOut);

View File

@ -470,17 +470,7 @@ gfxWindowsPlatform::HandleDeviceReset()
return false; return false;
} }
if (mHasFakeDeviceReset) { if (!mHasFakeDeviceReset) {
if (XRE_IsParentProcess()) {
// Notify child processes that we got a device reset.
nsTArray<dom::ContentParent*> processes;
dom::ContentParent::GetAll(processes);
for (size_t i = 0; i < processes.Length(); i++) {
processes[i]->SendTestGraphicsDeviceReset(uint32_t(resetReason));
}
}
} else {
Telemetry::Accumulate(Telemetry::DEVICE_RESET_REASON, uint32_t(resetReason)); Telemetry::Accumulate(Telemetry::DEVICE_RESET_REASON, uint32_t(resetReason));
} }

View File

@ -272,7 +272,7 @@ public:
mozilla::gfx::FeatureStatus GetD2D1Status() const; mozilla::gfx::FeatureStatus GetD2D1Status() const;
unsigned GetD3D11Version(); unsigned GetD3D11Version();
void TestDeviceReset(DeviceResetReason aReason) override; void TestDeviceReset(DeviceResetReason aReason);
virtual already_AddRefed<mozilla::gfx::VsyncSource> CreateHardwareVsyncSource() override; virtual already_AddRefed<mozilla::gfx::VsyncSource> CreateHardwareVsyncSource() override;
static mozilla::Atomic<size_t> sD3D11MemoryUsed; static mozilla::Atomic<size_t> sD3D11MemoryUsed;