Bug 1024943 - Check IsContentParent() before use AsContentParent(). r=smaug

This commit is contained in:
"Kan-Ru Chen (陳侃如)" 2014-06-14 15:32:24 +08:00
Родитель 888082a108
Коммит c76743182f
2 изменённых файлов: 36 добавлений и 24 удалений

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

@ -984,10 +984,12 @@ TabParent::RecvSyncMessage(const nsString& aMessage,
{
// FIXME Permission check for TabParent in Content process
nsIPrincipal* principal = aPrincipal;
ContentParent* parent = Manager()->AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
if (Manager()->IsContentParent()) {
ContentParent* parent = Manager()->AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
}
}
StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData);
@ -1004,10 +1006,12 @@ TabParent::AnswerRpcMessage(const nsString& aMessage,
{
// FIXME Permission check for TabParent in Content process
nsIPrincipal* principal = aPrincipal;
ContentParent* parent = Manager()->AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
if (Manager()->IsContentParent()) {
ContentParent* parent = Manager()->AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
}
}
StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData);
@ -1023,10 +1027,12 @@ TabParent::RecvAsyncMessage(const nsString& aMessage,
{
// FIXME Permission check for TabParent in Content process
nsIPrincipal* principal = aPrincipal;
ContentParent* parent = Manager()->AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
if (Manager()->IsContentParent()) {
ContentParent* parent = Manager()->AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
}
}
StructuredCloneData cloneData = ipc::UnpackClonedMessageDataForParent(aData);

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

@ -236,10 +236,12 @@ nsIContentParent::RecvSyncMessage(const nsString& aMsg,
{
// FIXME Permission check in Content process
nsIPrincipal* principal = aPrincipal;
ContentParent* parent = AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
if (IsContentParent()) {
ContentParent* parent = AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
}
}
nsRefPtr<nsFrameMessageManager> ppm = mMessageManager;
@ -262,10 +264,12 @@ nsIContentParent::AnswerRpcMessage(const nsString& aMsg,
{
// FIXME Permission check in Content process
nsIPrincipal* principal = aPrincipal;
ContentParent* parent = AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
if (IsContentParent()) {
ContentParent* parent = AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
}
}
nsRefPtr<nsFrameMessageManager> ppm = mMessageManager;
@ -286,10 +290,12 @@ nsIContentParent::RecvAsyncMessage(const nsString& aMsg,
{
// FIXME Permission check in Content process
nsIPrincipal* principal = aPrincipal;
ContentParent* parent = AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
if (IsContentParent()) {
ContentParent* parent = AsContentParent();
if (!ContentParent::IgnoreIPCPrincipal() &&
parent && principal && !AssertAppPrincipal(parent, principal)) {
return false;
}
}
nsRefPtr<nsFrameMessageManager> ppm = mMessageManager;