Bug 1307708 - Make the GetKeyState IPDL call sync (it was intr). r=jimm

This should avoid destruction messages from deleting the actor while the intr message is awaiting a response.

--HG--
extra : rebase_source : b45e8ffcfe6f63213a289aac874fd43cb71a54ec
This commit is contained in:
David Parks 2017-02-06 11:53:59 -08:00
Родитель 7f9b3dc8cd
Коммит 2b771634a4
4 изменённых файлов: 7 добавлений и 7 удалений

Просмотреть файл

@ -160,7 +160,7 @@ parent:
async ReturnSitesWithData(nsCString[] aSites, uint64_t aCallbackId); async ReturnSitesWithData(nsCString[] aSites, uint64_t aCallbackId);
intr GetKeyState(int32_t aVirtKey) sync GetKeyState(int32_t aVirtKey)
returns (int16_t aState); returns (int16_t aState);
intr NPN_SetValue_NPPVpluginRequiresAudioDeviceChanges(bool shouldRegister) intr NPN_SetValue_NPPVpluginRequiresAudioDeviceChanges(bool shouldRegister)

Просмотреть файл

@ -2117,7 +2117,7 @@ PMCGetKeyState(int aVirtKey)
PluginModuleChild* chromeInstance = PluginModuleChild::GetChrome(); PluginModuleChild* chromeInstance = PluginModuleChild::GetChrome();
if (chromeInstance) { if (chromeInstance) {
int16_t ret = 0; int16_t ret = 0;
if (chromeInstance->CallGetKeyState(aVirtKey, &ret)) { if (chromeInstance->SendGetKeyState(aVirtKey, &ret)) {
return ret; return ret;
} }
} }

Просмотреть файл

@ -3403,19 +3403,19 @@ PluginModuleChromeParent::RecvProfile(const nsCString& aProfile)
} }
mozilla::ipc::IPCResult mozilla::ipc::IPCResult
PluginModuleParent::AnswerGetKeyState(const int32_t& aVirtKey, int16_t* aRet) PluginModuleParent::RecvGetKeyState(const int32_t& aVirtKey, int16_t* aRet)
{ {
return IPC_FAIL_NO_REASON(this); return IPC_FAIL_NO_REASON(this);
} }
mozilla::ipc::IPCResult mozilla::ipc::IPCResult
PluginModuleChromeParent::AnswerGetKeyState(const int32_t& aVirtKey, PluginModuleChromeParent::RecvGetKeyState(const int32_t& aVirtKey,
int16_t* aRet) int16_t* aRet)
{ {
#if defined(XP_WIN) #if defined(XP_WIN)
*aRet = ::GetKeyState(aVirtKey); *aRet = ::GetKeyState(aVirtKey);
return IPC_OK(); return IPC_OK();
#else #else
return PluginModuleParent::AnswerGetKeyState(aVirtKey, aRet); return PluginModuleParent::RecvGetKeyState(aVirtKey, aRet);
#endif #endif
} }

Просмотреть файл

@ -213,7 +213,7 @@ protected:
virtual mozilla::ipc::IPCResult RecvProfile(const nsCString& aProfile) override { return IPC_OK(); } virtual mozilla::ipc::IPCResult RecvProfile(const nsCString& aProfile) override { return IPC_OK(); }
virtual mozilla::ipc::IPCResult AnswerGetKeyState(const int32_t& aVirtKey, int16_t* aRet) override; virtual mozilla::ipc::IPCResult RecvGetKeyState(const int32_t& aVirtKey, int16_t* aRet) override;
virtual mozilla::ipc::IPCResult RecvReturnClearSiteData(const NPError& aRv, virtual mozilla::ipc::IPCResult RecvReturnClearSiteData(const NPError& aRv,
const uint64_t& aCallbackId) override; const uint64_t& aCallbackId) override;
@ -507,7 +507,7 @@ class PluginModuleChromeParent
RecvProfile(const nsCString& aProfile) override; RecvProfile(const nsCString& aProfile) override;
virtual mozilla::ipc::IPCResult virtual mozilla::ipc::IPCResult
AnswerGetKeyState(const int32_t& aVirtKey, int16_t* aRet) override; RecvGetKeyState(const int32_t& aVirtKey, int16_t* aRet) override;
private: private:
virtual void virtual void